https://blog.csdn.net/qq_40194498/article/details/79650641
首先介紹一下Qt的座標機制:
Qt的座標與我們常見的座標不同,如圖,假設下圖的矩形就是我們的窗口,矩形左上角頂點即爲座標原點:
繪製矩形
核心代碼:
paint->drawRect(20,20,160,160);
- 1
第1、2個參數制定矩形的左上角起點,第3個參數制定矩形的長度,第4個參數指定矩形的寬度
繪製圓和橢圓
核心代碼:
paint->setPen(QPen(Qt::blue,4,Qt::SolidLine));
paint->drawEllipse(20,20,210,160);
- 1
- 2
第1,2個參數表示圓/橢圓距屏幕左上角的像素數。第3,4個參數表示圓/橢圓的寬度和高度,兩者相同時爲圓。更加確切地表述,這個圓或橢圓是在矩形中,這個矩形的左上角的頂點在座標軸中的位置爲(20,20),這個圓或橢圓的中心爲這個矩形的中心
繪製圓角矩形
核心代碼:
paint->setPen(QPen(Qt::blue,4,Qt::SolidLine));
paint->drawRoundRect(20,20,210,160,50,50);
- 1
- 2
前面四個參數和繪製矩形的參數一致,最後兩個參數決定角的圓度。它可以爲0到99之間的任意值(99代表最圓)。
繪製扇形圖
核心代碼:
QRectF rectangle(10.0, 20.0, 80.0, 60.0);//設定扇形所在的矩形,扇形畫在矩形內部
int startAngle = 30 * 16;//起始角度,角度可以爲負值,如-30*16
int spanAngle = 120 * 16;//覆蓋的角度,繪製方向爲逆時針方向
QPainter painter(this);
painter.drawPie(rectangle, startAngle, spanAngle);
- 1
- 2
- 3
- 4
- 5
前四個參數定義圓(與drawEllipse()函數相同)。後兩個參數定義圓的樣式。0爲起始角度(實際單位爲1/16度),500爲扇形所展開的角度(單位也爲1/16度)。
繪製弦
核心代碼:
paint->setPen(QPen(Qt::green,4,Qt::SolidLine));
paint->drawChord(20,20,210,160,500,1000);
- 1
- 2
drawChord()函數與drawPie()函數的參數完全相同。
繪製圓弧
核心代碼:
paint->setPen(QPen(Qt::green,4,Qt::SolidLine));
paint->drawArc(20,20,210,160,500,1000);
- 1
- 2
drawArc()函數與drawPie()函數的參數完全相同。