http://shouce.jb51.net/qt-beginning/15.htmlhtml
//光標定位到QPainter類名上,而後按下鍵盤上的F1按鍵,這時會自動跳轉到該類的幫助頁面函數
一、新建Qt Gui應用,名爲MainWindow,基類爲QMainWindow。工具
二、修改mainwindow.hui
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0); ~MainWindow(); protected: void paintEvent(QPaintEvent *); //重繪事件處理函數的聲明: 全部的繪製操做都要在這個函數裏面完成。 }; #endif // MAINWINDOW_H
三、this
3.一、繪製基本圖形spa
#include "mainwindow.h" #include <QPainter> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { } MainWindow::~MainWindow() { } void MainWindow::paintEvent(QPaintEvent *) { QPainter painter(this); //QPainter對象 painter.drawLine(QPointF(0, 0), QPointF(100, 100)); //注意:不包括工具欄,座標就是窗口的起點 }
3.2 設置畫筆.net
3.2.一、設置畫筆顏色3d
void MainWindow::paintEvent(QPaintEvent *) { QPainter painter(this); //QPainter對象 QPen pen; //畫筆 pen.setColor(QColor(255, 0, 0)); //設置畫筆顏色 painter.setPen(pen); painter.drawLine(QPointF(0, 0), QPointF(100, 100)); //注意:不包括工具欄,座標就是窗口的起點 }
3.2.二、自定義輪廓線樣式code
void MainWindow::paintEvent(QPaintEvent *) { QPainter painter(this); //QPainter對象 QPen pen; //畫筆 QVector<qreal> dashes; qreal space = 4; dashes << 1 << space << 3 << space << 9 << space << 27 << space << 9 << space; //函數自定義樣式:自定義輪廓線樣式 pen.setDashPattern(dashes); //設置線性風格: pen.setColor(QColor(255, 0, 0)); //設置畫筆顏色 painter.setPen(pen); painter.drawLine(QPointF(0, 0), QPointF(100, 100)); //注意:不包括工具欄,座標就是窗口的起點 }
3.三、設置畫刷htm
3.3.一、設置畫刷顏色
void MainWindow::paintEvent(QPaintEvent *) { QPainter painter(this); //QPainter對象 QPen pen; //畫筆 pen.setColor(QColor(255, 0, 0)); //設置畫筆顏色 painter.setPen(pen); // QBrush brush(QColor(0, 255, 0, 125)); //畫刷:填充矩形的顏色 QBrush brush(Qt::DotLine); //Qt預約義的顏色,在幫助中索引Qt::GlobalColor關鍵字查看 painter.setBrush(brush); //添加畫刷 painter.drawRect(50, 50, 200, 100); //繪製矩形 }
3.3.二、設置畫刷風格
void MainWindow::paintEvent(QPaintEvent *) { QPainter painter(this); //QPainter對象 QPen pen; //畫筆 pen.setColor(QColor(255, 0, 0)); //設置畫筆顏色 painter.setPen(pen); QBrush brush(Qt::DotLine); //Qt預約義的顏色,在幫助中索引Qt::GlobalColor關鍵字查看 brush.setStyle(Qt::HorPattern); painter.setBrush(brush); //添加畫刷 painter.drawRect(50, 50, 200, 100); //繪製矩形 }
、
四、畫弧線
void MainWindow::paintEvent(QPaintEvent *) { QRectF rectangle(10.0, 20.0, 80.0, 60.0); //矩形 int startAngle = 30 * 16; //起始角度 int spanAngle = 120 * 16; //跨越度數 QPainter painter(this); painter.drawArc(rectangle, startAngle, spanAngle); //畫弧線時,角度被分紅了十六分之一,就是說,要想爲30度,就得是30*16。它有起始角度和跨度,還有位置矩形 }