偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

淺談QT父子Widget之間消息傳遞機(jī)制

移動(dòng)開(kāi)發(fā)
QT 父子Widget之間消息傳遞機(jī)制是本文要介紹的內(nèi)容,主要是來(lái)了解并學(xué)習(xí)QT Widget應(yīng)用中消息傳遞的機(jī)制,具體內(nèi)容的實(shí)現(xiàn)來(lái)看本文詳解。

QT 父子Widget之間消息傳遞機(jī)制是本文要介紹的內(nèi)容,主要是來(lái)了解并學(xué)習(xí)QT Widget應(yīng)用中消息傳遞的機(jī)制,具體內(nèi)容的實(shí)現(xiàn)來(lái)看本文詳解。

在父widget上擺一個(gè)子widget后,當(dāng)click子widget時(shí):只會(huì)進(jìn)入到子widget的相關(guān)事件處理函數(shù)中,比如進(jìn)入到mousePressEvent()中,而不會(huì)進(jìn)入到父widget的對(duì)應(yīng)事件處理函數(shù)中。畢竟:click的是子widget,其遮擋住了父widget,從而父widget接收不到這個(gè)事件。然而事實(shí)真的是這個(gè)樣子嗎?

我做了一個(gè)測(cè)試:在一個(gè)QWidget上建了一個(gè)QLabel。而后實(shí)現(xiàn)父QWidget的mousePressEvent(),然后跟一下發(fā)現(xiàn):當(dāng)我click這個(gè)label時(shí):居然能進(jìn)入到父QWidget的mousePressEvent()中!但是如果把子改成QPushButton則進(jìn)入不了!

咨詢(xún)了一下別人,得到的答案是:如果子widget沒(méi)有accept或ignore該事件,則該事件會(huì)被傳遞給其父親。

事實(shí)也確實(shí)如此:

1、對(duì)于QLabel:如果不重寫(xiě)mouse處理函數(shù),也沒(méi)有設(shè)置事件過(guò)濾器等操作的話,則相當(dāng)于:其對(duì)mouse這個(gè)事件一直沒(méi)有進(jìn)行處理,那沒(méi)有進(jìn)行處理的話,相當(dāng)于上邊所說(shuō)的情況,此時(shí)該事件會(huì)被傳遞給其parent。

2、而對(duì)于QPushButton而言:當(dāng)click它時(shí):其會(huì)發(fā)射clicked()信號(hào),其實(shí)這就相當(dāng)于它對(duì)該事件的一個(gè)operator過(guò)程。所以:這里它accept該事件并進(jìn)行了對(duì)應(yīng)處理。從而:無(wú)法傳遞給其父窗口。

那么:對(duì)于一個(gè)繼承而來(lái)的類(lèi),只要我們重寫(xiě)實(shí)現(xiàn)了其各個(gè)事件處理函數(shù),則對(duì)應(yīng)的事件肯定無(wú)法傳遞給其父widget!哪怕重寫(xiě)的該事件處理函數(shù)的函數(shù)體為空!

如果是標(biāo)準(zhǔn)的控件對(duì)象,則其肯定沒(méi)重寫(xiě)各個(gè)事件處理函數(shù)。那消息能不能傳遞到父widget中,則取決于中途有沒(méi)有使用事件過(guò)濾器等將該信號(hào)攔截下來(lái)了。

小結(jié):

QT 父子Widget之間消息傳遞機(jī)制的內(nèi)容介紹完了,希望通過(guò)QT Widget應(yīng)用內(nèi)容的學(xué)習(xí)能對(duì)你有所幫助。

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

2011-09-07 16:36:00

Qt Widget

2011-09-09 17:59:26

QT Widget

2011-09-08 17:48:33

Web Widget

2014-03-04 15:28:32

iOS開(kāi)發(fā)消息傳遞機(jī)制

2011-06-24 10:05:51

QT 對(duì)象 父對(duì)象

2011-09-07 16:24:10

Qt Widget

2022-11-14 09:13:16

2011-09-07 16:28:46

QT WidgetQWidget

2011-06-28 15:37:34

Qt 內(nèi)存

2011-06-21 16:51:21

Qt 靜態(tài) 編譯

2011-06-20 16:38:33

Qt QWidget Qt4.5

2011-07-05 10:22:44

Qt Sqlite

2011-07-04 15:30:24

Qt 布局 GridLayout

2010-08-02 16:59:54

2011-05-31 11:55:00

Android 消息機(jī)制

2009-09-04 11:00:13

通過(guò)C#引用傳遞

2009-07-16 09:46:20

iBATIS Log機(jī)

2011-03-10 15:22:08

訪問(wèn)控制機(jī)制Java

2011-07-01 15:04:49

Qt 內(nèi)省

2011-06-13 10:03:19

Qt 多線程 編程
點(diǎn)贊
收藏

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