1. 程式人生 > >QT中QPainter的使用及矩形 圓形等常見圖形的畫法

QT中QPainter的使用及矩形 圓形等常見圖形的畫法

#include<QApplication>
#include <QWidget>
#include <QPainter>
class MyMainWindow:public QWidget
{
public:
 MyMainWindow(QWidget *parent = 0);
 private:
 void paintEvent(QPaintEvent*);
 QPainter *paint;
};


void MyMainWindow::paintEvent(QPaintEvent*)

//paintEvent函式由系統自動呼叫,用不著我們人為的去呼叫。

{
 paint=new QPainter;
 paint->begin(this);
 paint->setPen(QPen(Qt::blue,4,Qt::DashLine));//設定畫筆形式 
 paint->setBrush(QBrush(Qt::red,Qt::SolidPattern));
//設定畫刷形式 
 paint->drawRect(20,20,160,160);
 paint->end();
}


MyMainWindow::MyMainWindow(QWidget*parent)

:QWidget(parent)
{
 setGeometry(100,100,200,200);
}


int main(int argc,char**argv)
{
 QApplication a(argc,argv);
 MyMainWindow w;
 w.show();
 return a.exec();
}

 


輸出結果: 繪製圓和橢圓 核心程式碼: paint->setPen(QPen(Qt::blue,4,Qt::SolidLine)); paint->drawEllipse(20,20,210,160); 第1,2個引數分別表示圓/橢圓距左上角的畫素數。第3,4個引數表示圓/橢圓的寬度和高度。更加確切地表述,這個圓或橢圓是在矩形中,這個矩形的左上角的頂點在座標軸中的位置為(20,20),這個圓或橢圓的中心為這個矩形的中心,以下的都相似!!!
繪製圓角矩形
核心程式碼: paint->setPen(QPen(Qt::blue,4,Qt::SolidLine)); paint->drawRoundRect(20,20,210,160,50,50); 最後兩個引數決定角的圓度。它可以為0到99之間的任意值(99代表最圓)。
繪製扇形圖 核心程式碼: paint->setPen(QPen(Qt::green,4,Qt::SolidLine)); paint->drawPie(20,20,210,160,0,500); 前四個引數定義圓(與drawEllipse()函式相同)。後兩個引數定義圓的樣式。0為起始角度(實際單位為1/16度),500為扇形所展開的角度(單位也為1/16度)。
繪製弦 核心程式碼: paint->setPen(QPen(Qt::green,4,Qt::SolidLine)); paint->drawChord(20,20,210,160,500,1000); drawChord()函式與drawPie()函式的引數完全相同。
繪製圓弧 核心程式碼: paint->setPen(QPen(Qt::green,4,Qt::SolidLine)); paint->drawArc(20,20,210,160,500,1000); drawArc()函式與drawPie()函式的引數完全相同。
繪製貝塞爾曲線 核心程式碼: paint->setPen(QPen(Qt::green,4,Qt::SolidLine)); paint->drawQuadBezier(QPointArray(QRect(20,20,210,160))); 傳遞給該函式的唯一一個引數表示一個矩形,在其中建立貝塞爾曲線(其他引數為預設引數,可以省略)。

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!希望你也加入到我們人工智慧的隊伍中來!http://www.captainbed.net