QT中QPainter的使用及矩形 圓形等常見圖形的畫法
阿新 • • 發佈:2018-12-18
#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)
{
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::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