• <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>

            zhonghua

            C++博客 首頁 新隨筆 聯系 聚合 管理
              72 Posts :: 1 Stories :: 4 Comments :: 0 Trackbacks
            在父widget上擺一個子widget后,當click子widget時:只會進入到子widget的相關事件處理函數中,比如進入到 mousePressEvent()中, 而不會進入到父widget的對應事件處理函數中。畢竟:click的是子widget,其遮擋住了父widget,從而父widget接收不到這個事 件。然而事實真的是這個樣子嗎?

                 我做了一個測試: 在一個QWidget上建了一個QLabel。而后實現父QWidget的mousePressEvent(), 然后跟一下發現:當我click這個label時:居然能進入到父QWidget的mousePressEvent()中!但是如果把子改成 QPushButton則進入不了!


                 咨詢了一下別人,得到的答案是:如果子widget沒有accept或ignore該事件,則該事件會被傳遞給其父親。


               事實也確實如此:

                ①對于QLabel: 如果不重寫mouse處理函數,也沒有設置事件過濾器等操作的話,則相當于:其對mouse這個事件一直沒有進行處理,那沒有進行處理的話,相當于上邊所說的情況,此時該事件會被傳遞給其parent。

                ②而對于QPushButton而言:當click它時:其會發射clicked()信號,其實這就相當于它對該事件的一個operator過程。所以:這里它accept該事件并進行了對應處理。從而:無法傳遞給其父窗口。



                那么:對于一個繼承而來的類,只要我們重寫實現了其各個事件處理函數,則對應的事件肯定無法傳遞給其父widget!  哪怕重寫的該事件處理函數的函數體為空!


               如果是標準的控件對象,則其肯定沒重寫各個事件處理函數。那消息能不能傳遞到父widget中,則取決于中途有沒有使用事件過濾器等將該信號攔截下來了。

            posted on 2012-03-29 15:09 米米 閱讀(614) 評論(0)  編輯 收藏 引用 所屬分類: qt
            性做久久久久久久久浪潮| 久久久国产视频| 亚洲国产精品18久久久久久| 久久久精品国产免大香伊 | 欧美日韩精品久久久免费观看| 国产精品九九九久久九九| 国产精品美女久久久免费| 久久一区二区三区99| 久久久久青草线蕉综合超碰| 国产精品久久久久久| 久久久久国色AV免费观看| 久久成人国产精品免费软件| 久久精品午夜一区二区福利| 99精品国产99久久久久久97 | 久久精品国产网红主播| 久久久久无码国产精品不卡| 久久er热视频在这里精品| 久久中文字幕精品| 国产香蕉97碰碰久久人人| AV无码久久久久不卡蜜桃| 伊人久久大香线蕉av不卡 | 人妻久久久一区二区三区| 狠狠色丁香久久婷婷综合蜜芽五月 | 热久久国产欧美一区二区精品 | 亚洲国产成人久久综合一| 99久久99久久精品免费看蜜桃| 免费精品国产日韩热久久| 人人狠狠综合久久亚洲| 久久久久九九精品影院| 香蕉久久永久视频| 2021国内久久精品| 国内精品久久国产| 亚洲va久久久噜噜噜久久狠狠| 久久久无码人妻精品无码| 94久久国产乱子伦精品免费| 久久国产乱子精品免费女| 久久国产精品国语对白| 午夜精品久久久久久久无码| 免费无码国产欧美久久18| 久久精品www人人爽人人| 久久最近最新中文字幕大全|