• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            逛奔的蝸牛

            我不聰明,但我會很努力

               ::  :: 新隨筆 ::  ::  :: 管理 ::
            引自: http://qtsoftware.blogspot.com/
            1.事件首先由Qt的ServerApplication去接收來自于外部或內(nèi)部的一些行為,鼠標(biāo)點(diǎn)擊,鍵盤輸入,時鐘事件等,分析并決定送往對應(yīng)的對象去處理(內(nèi)部管理機(jī)制,如有機(jī)會另文分析),最后會調(diào)用bool QCoreApplication::notify ( QObject * receiver, QEvent * event ) [virtual]去處理,當(dāng)然這個是虛函數(shù),你可以在子類去重新實(shí)現(xiàn)它 。

            2.在notify(...)中,在發(fā)給對應(yīng)的接收者前,會先把消息送給QApplication。所以如果想在你界面的Widget前先處理那些事件,那么你可以給QApplication對象installEventFilter,然后在對應(yīng)的eventFilter()里先把這些事件都給過一遍,該和諧的先和諧掉。

            3.如果QApplication沒有處理那些事件,然后就是交給事件接收對象了。在這個對象接收前,也可以為這對象加一個事件過濾器,同樣是installEventFilter,不過它的調(diào)用者是事件接收者(也就是前面那個reveiver參數(shù)),而不是QApplication/QCoreApplication.

            4.經(jīng)過了前面兩級過濾后,如果事件還沒被處理(前面函數(shù)的返回值為false),那么就會進(jìn)入接收者的event()函數(shù),你可以里面根據(jù)事件的不同類型盡情處理。

            5.默認(rèn)event()函數(shù)根據(jù)事件類型會調(diào)用不同的事件處理函數(shù),類似mouseEvent(),keyEvent()去分別處理他們。

            以上事件處理流程,由復(fù)雜的簡單。至于每一步我們寫代碼的時候,都會怎么去用它,可以參考http://www.cnblogs.com/smoozer/archive/2009/02/09/1386704.html 這個哥們的翻譯文章。
            posted on 2009-05-15 12:28 逛奔的蝸牛 閱讀(748) 評論(0)  編輯 收藏 引用 所屬分類: Qt
            国内精品久久久久久99| 久久精品免费一区二区| 久久这里只有精品久久| 久久国产精品免费一区二区三区| 欧美午夜A∨大片久久 | 中文字幕亚洲综合久久菠萝蜜| 亚洲国产成人久久一区WWW| 久久婷婷国产综合精品| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 色综合久久天天综合| 久久亚洲日韩看片无码| 久久久久久a亚洲欧洲aⅴ| 久久亚洲sm情趣捆绑调教| 欧美日韩中文字幕久久伊人| 久久天天躁狠狠躁夜夜avapp | 亚洲午夜精品久久久久久浪潮| a级成人毛片久久| 国产成人久久精品一区二区三区| 91久久精品电影| 丰满少妇高潮惨叫久久久| 国产亚洲精品久久久久秋霞| 久久久WWW成人免费精品| 99久久这里只有精品| 久久精品国产亚洲av高清漫画| 一本久久免费视频| 亚洲精品无码专区久久同性男| 99热成人精品免费久久| 国产精品一区二区久久精品| 久久久久亚洲精品无码蜜桃| 久久精品免费全国观看国产| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 久久九九精品99国产精品| 久久人人添人人爽添人人片牛牛| 久久国产精品免费一区二区三区| 久久99国产精品二区不卡| 久久久噜噜噜www成人网| 久久久久亚洲精品天堂| 精品久久久久久亚洲精品| 9久久9久久精品| 超级碰久久免费公开视频| 久久97久久97精品免视看|