Qt之QPainter:重寫mainwindows繪圖事件繪製直線,弧線、設置畫筆畫刷

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。它有起始角度和跨度,還有位置矩形
}

相關文章
相關標籤/搜索