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

初學者文檔 QT中窗口刷新事件

移動開發
對于窗體刷新事件,本文主要談一下paintevent的使用,也許很多人初次使用這個的時候,搞不懂這個是在什么時候被調用的,現在本文來簡單說明一下。

QT窗口刷新事件是本文介紹的內容,經多分享過一個星期的項目初步開發,寫此文就開發時遇到的一些常見問題,給出些資料和自己的觀點,希望能給其他的初學者或者參賽的選手一點幫助,當然,也算是一種拋磚引玉,大家有什么好的技巧經驗什么的,也能多,借助這次比賽,我們共同進步。

如果大家都是跟我一樣,剛剛開始接觸QT,開始開發QT的程序,肯定也會有很多不習慣的地方,今天我重點想談的就是這么一個不習慣的地方——QT窗口刷新事件

對于窗體刷新事件,我主要談一下paintevent的使用,我猜也許很多人初次使用這個的時候,也跟我一樣一頭霧水,搞不懂這個是在什么時候被調用的,現在我來簡單說明一下。

void QWidget::paintEvent ( QPaintEvent * )

如果不了解它的原理,任意找個例子程序你也是很難找到什么時候它被調用的痕跡的。

Paint這個事件只要是窗體部件需要被重繪了就會被調用,是由窗體系統產生的,但要求程序重畫窗體部件的時候,事件循環就會從事件隊列里面選中這個事件并把它分發到那個需要重畫的widget中。并不是所有的paint事件都是由窗口系統產生的,通過repaint()或update()你也可以使用它。但是,需要知道的是,就算你很不耐煩,想直接調用paintEvent(),這是不可能的,因為paintEvent()函數是protected的(很可能訪問不了)。它也繞開了任何存在的事件過濾器。因為這些原因,Qt提供了一個機制,直接sending事件而不是posting 。

不過,需要注意的是,有時候update()執行后不一定會直接轉到paintEvent。為什么會這樣?這是因為QT會把多個繪制事件自動的合并成一個來加快繪制速度。這一點,是不是也很不習慣呢,不過,我認為也是很有優勢的一點,在實現我們的程序的時候,我們可以把所有的繪制窗體的那些語句函數什么的都放到paintEvent,通過各種如 if-else語句進行判斷來繪制,這樣對速度有很好的優化并且可以防止閃爍。

繪制事件還有一點也很需要注意,那就是:當繪制事件發生的時候,更新區域通常被擦除。如果需要在上次繪制的基礎上進行繪制的話,我的做法是:用一個臨時變量存著上次繪制后的圖,然后在這個圖上進行繪制,***再直接顯示這個圖就行了。是個很笨的方法,如果大家有其他的更好的方法可以接受下。順便提一下,通過QPaintEvent::erased()可以得知這個窗口部件是否被擦除。

Ps:寫完查了一下,在WRepaintNoErase窗口部件標記被設置的時候不會擦除。

void QWidget::update ()

這個事件上文中就提到了,用于更新窗體部件,它規劃了所要處理的繪制事件。可以被QT優化,把多個繪制事件合并。所以推薦大家使用這個,而不是repaint()。幾次調用update()的結果通常僅僅是一次paintEvent()調用,這個優化對性能還是很有好處的。

小結:關于QT窗口刷新事件,今天就介紹這么多,都是些基礎的東西。大牛們就不用看了,呵呵,希望和我一樣的初學者們,也都能介紹下自己開發中遇到的問題,大家一起分享討論進步。***希望本篇文章對你有所幫助。

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

2011-09-08 10:38:37

Widget

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-06-17 14:41:56

Qt

2011-06-17 15:19:28

Qt

2011-06-17 15:25:18

Qt

2011-06-17 15:37:42

Qt

2011-06-17 15:44:25

Qt

2011-06-17 14:54:31

Qt

2011-06-27 14:56:46

Qt Designer

2011-08-04 18:01:07

IOS Cocoa Touc

2011-09-16 09:38:19

Emacs

2022-04-24 15:21:01

MarkdownHTML

2011-04-12 10:13:24

2011-08-24 09:54:05

Lua字符春交互

2011-08-02 14:48:04

IOS 多任務

2011-08-10 16:44:56

iPhone代理設計模式

2011-08-24 17:19:20

Lua源文件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品海角社区在线观看 | 欧美一级毛片久久99精品蜜桃 | 欧美一级毛片免费观看 | 国产一区亚洲二区三区 | 欧美精品在线免费 | 在线观看国产 | 全免费a级毛片免费看视频免 | 尤物在线 | 久久久99精品免费观看 | 在线色网| 日韩视频免费看 | 亚洲一区二区三区视频 | 久久亚洲一区二区三区四区 | 中文字幕一区二区三区精彩视频 | 91精品国产欧美一区二区 | 午夜免费网站 | 免费看的av| a黄毛片| 欧美一区2区三区4区公司二百 | 国产观看| 国产高清视频在线观看 | 中文字幕一区在线观看视频 | 五月花丁香婷婷 | 久久久www成人免费精品 | 欧美日韩国产一区二区 | 罗宾被扒开腿做同人网站 | 欧美一级做性受免费大片免费 | 人妖一区 | 国产亚洲精品综合一区 | 国产在线精品一区二区三区 | 亚洲一区二区久久 | 欧美黑人国产人伦爽爽爽 | 伊人久久综合影院 | 国产精品久久久久久久久久尿 | 日韩在线观看网站 | 在线国产小视频 | 欧美综合国产精品久久丁香 | 欧美国产视频 | 中文在线视频观看 | 老司机成人在线 | 成年人精品视频 |