1 #include<QApplication>
2 #include <QWidget>
3 #include <QPainter>
4 class MyMainWindow:public QWidget 5 { 6 public: 7 MyMainWindow(QWidget *parent = 0); 8 private: 9 void paintEvent(QPaintEvent*); 10 QPainter *paint; 11 }; 12
13
14 void MyMainWindow::paintEvent(QPaintEvent*) 15
16 //paintEvent函數由系統自動調用,用不着我們人為的去調用。
17 { 18 paint=new QPainter; 19 paint->begin(this); 20 paint->setPen(QPen(Qt::blue,4,Qt::DashLine));//設置畫筆形式
21 paint->setBrush(QBrush(Qt::red,Qt::SolidPattern));//設置畫刷形式
22 paint->drawRect(20,20,160,160); 23 paint->end(); 24 } 25
26
27 MyMainWindow::MyMainWindow(QWidget*parent):QWidget(parent) 28 { 29 setGeometry(100,100,200,200); 30 } 31
32
33 int main(int argc,char**argv) 34 { 35 QApplication a(argc,argv); 36 MyMainWindow w; 37 w.show(); 38 return a.exec(); 39 }
繪制圓和橢圓
核心代碼:
1 paint->setPen(QPen(Qt::blue,4,Qt::SolidLine)); 2 paint->drawEllipse(20,20,210,160);
第1,2個參數分別表示圓/橢圓距左上角的像素數。第3,4個參數表示圓/橢圓的寬度和高度。更加確切地表述,這個圓或橢圓是在矩形中,這個矩形的左上角的頂點在坐標軸中的位置為(20,20),這個圓或橢圓的中心為這個矩形的中心,以下的都相似!!!
繪制圓角矩形
核心代碼:
1 paint->setPen(QPen(Qt::blue,4,Qt::SolidLine)); 2 paint->drawRoundRect(20,20,210,160,50,50);
最后兩個參數決定角的圓度。它可以為0到99之間的任意值(99代表最圓)。
繪制扇形圖
核心代碼:
1 paint->setPen(QPen(Qt::green,4,Qt::SolidLine)); 2 paint->drawPie(20,20,210,160,0,500);
前四個參數定義圓(與drawEllipse()函數相同)。后兩個參數定義圓的樣式。0為起始角度(實際單位為1/16度),500為扇形所展開的角度(單位也為1/16度)。
繪制弦
核心代碼:
1 paint->setPen(QPen(Qt::green,4,Qt::SolidLine)); 2 paint->drawChord(20,20,210,160,500,1000);
drawChord()函數與drawPie()函數的參數完全相同。
繪制圓弧
核心代碼:
1 paint->setPen(QPen(Qt::green,4,Qt::SolidLine)); 2 paint->drawArc(20,20,210,160,500,1000);
drawArc()函數與drawPie()函數的參數完全相同。
繪制貝塞爾曲線
核心代碼:
1 paint->setPen(QPen(Qt::green,4,Qt::SolidLine)); 2 paint->drawQuadBezier(QPointArray(QRect(20,20,210,160)));
傳遞給該函數的唯一一個參數表示一個矩形,在其中創建貝塞爾曲線(其他參數為缺省參數,可以省略)。
