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

Qt 編程點滴 初學者必看 (7)

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

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

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); //內圓線條顏色  
  20.     QColor outSideColor(237,29,12); //外圓線條顏色  
  21.     QColor lineColor(237,29,12); //直線顏色  
  22.     QColor insideBrushColor(255,0,0,25);//內圓畫刷顏色,最后的參數代表透明度( 0(完全透明)-100(不透明) )  
  23.     QColor outsideBrushColor(255,0,0,50);//外圓畫刷顏色,最后的參數代表透明度( 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); //內圓線條顏色  
  8.     QColor outSideColor(237,29,12); //外圓線條顏色  
  9.     QColor lineColor(237,29,12); //直線顏色  
  10.     QColor insideBrushColor(255,0,0,25);//內圓畫刷顏色,最后的參數代表透明度( 0(完全透明)-100(不透明) )  
  11.     QColor outsideBrushColor(255,0,0,50);//外圓畫刷顏色,最后的參數代表透明度( 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;  

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

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-06-17 14:12:32

Qt

2011-06-17 15:06:14

Qt

2011-06-17 14:29:55

Qt

2011-06-17 15:32:28

Qt

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-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數組元素

2009-10-22 16:46:03

VB.NET初步知識

2009-11-23 10:29:43

CISCO路由器教程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩一级 | 久久一 | 99精品久久久久久久 | 国产精品国产精品国产专区不蜜 | 国产视频一区二区 | 久久久久久国产精品免费免费 | 男人天堂免费在线 | 久草福利| 色综合天天综合网国产成人网 | 精品国产乱码一区二区三区 | 色资源站| 在线观看国产视频 | 国产精品色婷婷久久58 | 国产日韩精品一区二区 | www狠狠爱com | 中文字幕乱码一区二区三区 | 成人国产精品久久久 | 欧美性猛交一区二区三区精品 | 国产一区二区三区亚洲 | 欧美日韩国产精品一区二区 | 91久久国产综合久久 | 亚洲日韩欧美一区二区在线 | 超碰av在线 | 国产精品看片 | 欧美国产免费 | 九九热这里 | 一级全黄少妇性色生活免费看 | 涩涩视频网 | 日日日干干干 | 亚洲色图在线观看 | 久久69精品久久久久久国产越南 | 操亚洲| 九九亚洲 | 久久精彩视频 | 日韩一区二区三区在线播放 | 天天影视亚洲综合网 | 日韩亚洲视频 | 精品一区二区三区在线观看国产 | 欧美日韩视频在线第一区 | 不卡在线一区 | 四虎影院新网址 |