Qt 之旅--- 07 基本畫圖

#include <QPaintEvent> //畫圖事件git

#include <QPainter>// 畫圖設備函數

 

1 基本知識ui

  Painter 畫圖設備this

pen :筆code

brush:刷子事件

經過改變筆和刷子實現多個樣式ip

 

//例如get

     QPainter painter(this);
    QPen pen(Qt::DotLine);
    QBrush brush(Qt::blue);
    brush.setStyle(Qt::HorPattern);
    painter.setPen(pen);
    painter.setBrush(brush);
    painter.drawRect(50,50,200,100);源碼

在paintevent 事件實現  qt

效果以下:

2 基本經常使用方法

  會發現 大部分函數都是內聯函數

   //填充矩形

    void fillRect(const QRectF &, const QBrush &);
    inline void fillRect(int x, int y, int w, int h, const QBrush &);
    void fillRect(const QRect &, const QBrush &);

    void fillRect(const QRectF &, const QColor &color);
    inline void fillRect(int x, int y, int w, int h, const QColor &color);
    void fillRect(const QRect &, const QColor &color);

    inline void fillRect(int x, int y, int w, int h, Qt::GlobalColor c);
    inline void fillRect(const QRect &r, Qt::GlobalColor c);
    inline void fillRect(const QRectF &r, Qt::GlobalColor c);

   inline void fillRect(int x, int y, int w, int h, Qt::BrushStyle style);
    inline void fillRect(const QRect &r, Qt::BrushStyle style);
    inline void fillRect(const QRectF &r, Qt::BrushStyle style);

//畫線

inline void QPainter::drawLine(const QLineF &)

inline void QPainter::drawLine(const QLine &line)

inline void QPainter::drawLine(int x1, int y1, int x2, int y2)
inline void QPainter::drawLine(const QPoint &p1, const QPoint &p2)

inline void QPainter::drawLine(const QPointF &p1, const QPointF &p2)
//畫矩形

inline void QPainter::drawRect(const QRectF &rect)
inline void QPainter::drawRect(int x, int y, int w, int h)
inline void QPainter::drawRect(const QRect &r)

//畫圓

inline void QPainter::drawEllipse(int x, int y, int w, int h)
inline void QPainter::drawEllipse(const QPointF &center, qreal rx, qreal ry)

inline void QPainter::drawEllipse(const QPoint &center, int rx, int ry)

//畫弧線

inline void QPainter::drawArc(const QRect &r, int a, int alen)
inline void QPainter::drawArc(int x, int y, int w, int h, int a, int alen)

 

3 源碼


#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void  MainWindow::paintEvent(QPaintEvent *) {     QPainter painter(this);     QPen pen(Qt::DotLine);     QBrush brush(Qt::blue);     brush.setStyle(Qt::HorPattern);     painter.setPen(pen);     painter.setBrush(brush);     painter.drawRect(50,50,200,100); } Demo16 地址:https://gitee.com/codemaner/qt_learning_record/tree/master

相關文章
相關標籤/搜索