成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Qt 編程點(diǎn)滴 初學(xué)者必看 (7)

移動開發(fā)
本文介紹的是Qt 編程點(diǎn)滴,作為一名新手,我建議必須看一看。編程那些事,只有編程人員自己明白!所以推薦本文。

Qt 編程繼續(xù)為大家講解,還是接著文章 Qt 編程點(diǎn)滴 初學(xué)者必看 (6) ,繼續(xù)介紹,說編程那些細(xì)節(jié)。由于本話題是一節(jié)一節(jié)為大家介紹的,所以更多內(nèi)容請看末尾編輯推薦。本文基本是用代碼實(shí)現(xiàn)的效果,所以并沒有太多的內(nèi)容。

QPainterPath 畫出的圖形會閃爍的問題:

用下面的寫法畫出的圖形會閃爍

  1. class MyClass: public QWidget  
  2. {  
  3. public:  
  4.   MyClass(QWidget*);  
  5. private:  
  6.     QPainterPath* route;  
  7.     void paintEvent(QPaintEvent*e);  
  8. };  
  9. MyClass::MyClass()  
  10. {  
  11.   route = new QPainterPath();  
  12. }  
  13. void MyClass::paintEvent( QPaintEvent*e)  
  14. {  
  15.     QPainter *painter = new QPainter(this);  
  16.     //畫校正圖形  
  17.     int insideR = 30;  
  18.     int outsideR = 50;  
  19.     QColor insideColor(237,29,12); //內(nèi)圓線條顏色  
  20.     QColor outSideColor(237,29,12); //外圓線條顏色  
  21.     QColor lineColor(237,29,12); //直線顏色  
  22.     QColor insideBrushColor(255,0,0,25);//內(nèi)圓畫刷顏色,最后的參數(shù)代表透明度( 0(完全透明)-100(不透明) )  
  23.     QColor outsideBrushColor(255,0,0,50);//外圓畫刷顏色,最后的參數(shù)代表透明度( 0(完全透明)-100(不透明) )  
  24.  
  25.     //QPainterPath path;  
  26.     route->moveTo(insideR,0);  
  27.     route->lineTo(outsideR,0);  
  28.     route->arcTo(0-outsideR,0-outsideR,outsideR*2,outsideR*2,0,180);  
  29.     route->lineTo(0-insideR,0);  
  30.     route->arcTo(0-insideR,0-insideR,insideR*2,insideR*2,0,180);  
  31.     route->moveTo(0-insideR,0);  
  32.     route->lineTo(0-outsideR,0);  
  33.     route->arcTo(0-outsideR,0-outsideR,outsideR*2,outsideR*2,180,180);  
  34.     route->lineTo(insideR,0);  
  35.     route->arcTo(0-insideR,0-insideR,insideR*2,insideR*2,180,180);  
  36.     painter->setPen(Qt::NoPen);  
  37.     painter->setBrush(outsideBrushColor);  
  38.     painter->drawPath(*route);  
  39.  
  40.     painter->setBrush(Qt::NoBrush);  
  41.     painter->setPen(outSideColor);  
  42.     painter->drawEllipse( QPointF(0,0),outsideR,outsideR );  
  43.     painter->setBrush(insideBrushColor);  
  44.     painter->setPen(insideColor);  
  45.     painter->drawEllipse( QPointF(0,0),insideR,insideR );  
  46.     painter->setPen(lineColor);  
  47.     QPoint p1(0,  0- outsideR - 10  );  
  48.     QPoint p2(0,  outsideR + 10  );  
  49.     painter->drawLine(p1,p2);  
  50.     painter->rotate(90);  
  51.     painter->drawLine(p1,p2);  
  52.     painter->rotate(-90);  
  53.     delete painter;  

如下用下面的寫法則不會閃爍:

  1. void MyClass::paintEvent( QPaintEvent*e)  
  2. {  
  3.     QPainter *painter = new QPainter(this);  
  4.     //畫校正圖形  
  5.     int insideR = 30;  
  6.     int outsideR = 50;  
  7.     QColor insideColor(237,29,12); //內(nèi)圓線條顏色  
  8.     QColor outSideColor(237,29,12); //外圓線條顏色  
  9.     QColor lineColor(237,29,12); //直線顏色  
  10.     QColor insideBrushColor(255,0,0,25);//內(nèi)圓畫刷顏色,最后的參數(shù)代表透明度( 0(完全透明)-100(不透明) )  
  11.     QColor outsideBrushColor(255,0,0,50);//外圓畫刷顏色,最后的參數(shù)代表透明度( 0(完全透明)-100(不透明) )  
  12.     QPainterPath path;  
  13.     path.moveTo(insideR,0);  
  14.     path.lineTo(outsideR,0);  
  15.     path.arcTo(0-outsideR,0-outsideR,outsideR*2,outsideR*2,0,180);  
  16.     path.lineTo(0-insideR,0);  
  17.     path.arcTo(0-insideR,0-insideR,insideR*2,insideR*2,0,180);  
  18.     path.moveTo(0-insideR,0);  
  19.     path.lineTo(0-outsideR,0);  
  20.     path.arcTo(0-outsideR,0-outsideR,outsideR*2,outsideR*2,180,180);  
  21.     path.lineTo(insideR,0);  
  22.     path.arcTo(0-insideR,0-insideR,insideR*2,insideR*2,180,180);  
  23.     painter->setPen(Qt::NoPen);  
  24.     painter->setBrush(outsideBrushColor);  
  25.     painter->drawPath(path);  
  26.     painter->setBrush(Qt::NoBrush);  
  27.     painter->setPen(outSideColor);  
  28.     painter->drawEllipse( QPointF(0,0),outsideR,outsideR );  
  29.     painter->setBrush(insideBrushColor);  
  30.     painter->setPen(insideColor);  
  31.     painter->drawEllipse( QPointF(0,0),insideR,insideR );  
  32.     painter->setPen(lineColor);  
  33.     QPoint p1(0,  0- outsideR - 10  );  
  34.     QPoint p2(0,  outsideR + 10  );  
  35.     painter->drawLine(p1,p2);  
  36.     painter->rotate(90);  
  37.     painter->drawLine(p1,p2);  
  38.     painter->rotate(-90);  
  39.     delete painter;  

小結(jié):本文主要介紹了在Qt 窗體的使用,通過Qt 編程點(diǎn)滴介紹,也給自己提高了編程過程中需要注意的細(xì)節(jié)問題,由于本話題是一節(jié)一節(jié)為大家展現(xiàn)的,所以更多內(nèi)容,請看編輯推薦。

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-06-17 14:41:56

Qt

2011-06-17 15:19:28

Qt

2011-06-17 15:37:42

Qt

2011-06-17 15:44:25

Qt

2011-06-17 14:54:31

Qt

2011-06-17 14:12:32

Qt

2011-06-17 15:06:14

Qt

2011-06-17 15:32:28

Qt

2011-06-17 14:29:55

Qt

2011-09-16 09:38:19

Emacs

2011-06-27 14:56:46

Qt Designer

2011-09-08 10:38:37

Widget

2011-08-24 17:05:01

Lua

2013-04-23 10:51:15

Linux壓縮

2011-07-26 17:55:16

iPhone Runtime

2011-08-04 18:01:07

IOS Cocoa Touc

2009-10-29 09:19:59

ADO.NET

2009-11-17 15:33:26

PHP數(shù)組元素

2009-10-22 16:46:03

VB.NET初步知識

2009-11-23 10:29:43

CISCO路由器教程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 激情一区二区三区 | 蜜桃免费一区二区三区 | 日韩在线观看中文字幕 | 日韩欧美一区在线 | 亚洲国产在 | 区一区二区三在线观看 | 欧美中文字幕一区二区三区 | 人人九九精 | 日韩一区二 | 国产一区二区在线免费观看 | 免费看啪啪网站 | 成人福利电影 | 五月婷婷视频 | 精品国产欧美一区二区三区成人 | 午夜天堂精品久久久久 | 久久久久国产一区二区三区四区 | 成人欧美一区二区三区1314 | 亚洲喷水 | 久久精品亚洲精品国产欧美 | 91网站视频在线观看 | 久久精品国产一区二区电影 | 亚洲欧美久久 | 99热这里都是精品 | 国户精品久久久久久久久久久不卡 | 国产精品一区久久久久 | 久久久久国产 | 高清黄色 | 欧美日韩不卡合集视频 | 国产91在线 | 欧美 | 麻豆av免费观看 | 国产一区999| 日韩成人免费 | 国产成人在线视频 | 一区二区三区四区在线免费观看 | 91视频亚洲| 罗宾被扒开腿做同人网站 | 99久久婷婷国产综合精品电影 | 久久精品男人的天堂 | 成人看片在线观看 | 亚洲一区 中文字幕 | 五月激情婷婷网 |