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-03C++處理輸入字符串并轉(zhuǎn)為數(shù)組的操作
這篇文章主要介紹了C++處理輸入字符串并轉(zhuǎn)為數(shù)組的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01C/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