Qt?QPainter的使用方法
重點(diǎn):
1.QPainter在QWidget窗口的paintEvent中使用。
2.QPainter通常涉及到設(shè)置畫筆、設(shè)置畫刷、繪圖(QPen、QBrush、drawxx)三個流程。
class Widget : public QWidget
{
Q_OBJECT
protected:
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
Ui::Widget *ui;
};
oid Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this); //創(chuàng)建QPainter對象
painter.setRenderHint(QPainter::Antialiasing);
painter.setRenderHint(QPainter::TextAntialiasing);
int W=this->width(); //繪圖區(qū)寬度
int H=this->height(); //繪圖區(qū)高度
QRect rect(W/4,H/4,W/2,H/2); //中間區(qū)域矩形框
//設(shè)置畫筆
QPen pen;
pen.setWidth(3); //線寬
pen.setColor(Qt::red); //劃線顏色
pen.setStyle(Qt::SolidLine); //線的樣式,實線、虛線等
pen.setCapStyle(Qt::FlatCap); //線端點(diǎn)樣式
pen.setJoinStyle(Qt::BevelJoin); //線的連接點(diǎn)樣式
painter.setPen(pen);
//設(shè)置畫刷
QBrush brush;
brush.setColor(Qt::yellow); //畫刷顏色
brush.setStyle(Qt::SolidPattern); //畫刷填充樣式
painter.setBrush(brush);
//繪圖
painter.drawRect(rect); //填充定義的漸變區(qū)域
event->accept();
}其中QPen設(shè)計三種方式:

其中QBrush主要函數(shù)有:

畫刷的樣式內(nèi)容如下:

其中材質(zhì)(setTexture)的填充方法如下:
//設(shè)置畫刷
QPixmap texturePixmap(":images/images/texture.jpg");
QBrush brush;
brush.setStyle(Qt::TexturePattern); //畫刷填充樣式
brush.setTexture(texturePixmap); //設(shè)置材質(zhì)圖片
painter.setBrush(brush);
繼承畫刷的子類有三種,主要是漸變填充效果(具體設(shè)置看代碼的構(gòu)造使用方法)

最后繪圖 painter.drawRect(rect); 則包含多種繪制的方式有drawPoint(),drawLine(),drawArc()等等。
到此這篇關(guān)于Qt QPainter的使用方法的文章就介紹到這了,更多相關(guān)Qt QPainter內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++實現(xiàn)讀入二進(jìn)制數(shù)并轉(zhuǎn)換為十進(jìn)制輸出
本文給大家介紹的是一則使用C++實現(xiàn)讀入二進(jìn)制數(shù)并轉(zhuǎn)換為十進(jìn)制輸出的代碼,實現(xiàn)起來其實非常簡單,C++本身就提供了二進(jìn)制類庫的,大家看代碼吧,簡單又實用。2015-03-03
C++處理輸入字符串并轉(zhuǎn)為數(shù)組的操作
這篇文章主要介紹了C++處理輸入字符串并轉(zhuǎn)為數(shù)組的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
C/C++?判斷計算機(jī)存儲器字節(jié)序(端序)的幾種方式
字節(jié)序是計算機(jī)存儲數(shù)據(jù)的格式,主存儲器(主存)的字節(jié)序?qū)Τ绦虻囊浦残院图嫒菪灾陵P(guān)重要,利用聯(lián)合體、指針、位移和掩碼等方法可以檢測和處理字節(jié)序問題,對于內(nèi)存數(shù)據(jù)操作重要,也關(guān)系到跨平臺和網(wǎng)絡(luò)通信的數(shù)據(jù)處理2024-10-10

