填充模式Qt學習:QPainter之填充


發一下牢騷和主題無關:

        這節先介紹Qt的內置填充模式,我們用一個三次貝塞爾曲線的例子來說明。然后引入目前大批應用的三種漸變填充模式。
        填充模式應用setBrush()函數實現的。
        下圖是三次貝塞爾曲線的內置填充模式 :

    填充和模式

 

 

         構造函數頂用設置了圖片作為全部窗口部件的背景:(當然也可以用指定顏色填充)

setAutoFillBackground(true);
 QPalette palette;
 //palette.setColor(QPalette::Background, QColor(192,253,123));
 //palette.setColor(QPalette::Background, QColor(0,0,0));
 palette.setBrush(QPalette::Background, QBrush(QPixmap(":/4.png")));
 setPalette(palette); 

        具體的貝賽爾曲線和其填充如下代碼:
 QPainter painter(this);
 painter.setRenderHint(QPainter::Antialiasing, true);
 
 QPainterPath path;
 path.moveTo(80,320);
 path.cubicTo(200,80,320,80,480,320);
 
 painter.setPen(QPen(Qt::red, 8));
 painter.setBrush(QBrush(Qt::yellow, Qt::Dense7Pattern));
 painter.drawPath(path);
    每日一道理
嶺上嬌艷的鮮花,怎敵她美麗的容顏?山間清澈的小溪,怎比她純潔的心靈?

       這里說一下QPainterPath類, QPainterPath類可以通過連接基本的圖形元夙來確定恣意的矢量形狀:直線、橢圓、多邊形、弧形、貝賽爾曲線和其他的繪制路徑。繪制路徑是基本的圖元,從這個意義上來說,任何圖形或圖形組合都可以用繪制路徑描述。
        路徑可以確定一個邊緣,由邊緣鎖定的區域可以用畫刷來填充。本例設置內置的畫刷類型為 Dense7Pattern。
        Qt內置的畫刷類型有如下圖所示:(來自於Qtassistant)

    填充和模式

 

 

     

文章結束給大家分享下程序員的一些笑話語錄: 程序語言綜述
CLIPPER 程序員不去真的獵捕大象,他們只是購買大象部分的庫然后花幾年的時間試圖綜合它們。
DBASE 程序員只在夜間獵捕大象,因為那時沒人會注意到他們還在使用石弓。
FOXPRO 程序員開始使用更新更好的步槍,這使他們花掉比實際狩獵更多的時間學習新的射擊技術。
C 程序員拒絕直接購買步槍,寧可帶着鋼管和一個移動式機器車間到非洲,意欲從零開始造一枝完美的步槍。
PARADOX 程序員去非洲時帶着好萊塢關於獵捕大象的電影劇本,他們認為照劇本行事就會逮到一頭大象。
ACCESS 程序員在沒有任何獵象經驗的經驗下就出發了,他們穿着華麗的獵裝、帶着全部裝備,用漂亮的望遠鏡找到了大象,然后發覺忘了帶扳機。
RBASE 程序員比大象還要稀少,事實上,如果一頭大象看到了一個RBASE程序員,對他是個幸運日。
VISUAL ACCESS 程序員裝上子彈、舉起步槍、瞄准大象,這使大象感到可笑,究竟誰逃跑。他們無法抓住大象,因為由於他們對多重控制的偏愛,他們的吉普車有太多的方向盤因而無法駕駛。
ADA、APL和FORTRAN 程序員與聖誕老人和仙女一樣是虛構的。
COBOL 程序員對和自己一樣瀕臨滅絕的大象寄予了深切的同情。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM