我發現有關自定義QEvents
的多個問題。因此,自Qt 4以來,我們必須從QEvent
派生並註冊我們的自定義類型。周圍有一些樣品。如何在Qt中創建自定義車輪事件?
我想要的是帶有自定義數據的QWheelEvent
。所以這個活動應該可以在任何地方作爲「普通」QWheelEvent
使用,但是如果我想檢查我的CustomWheelEvent
類型並從中檢索數據。
問題是我不知道如何註冊該類型,因爲QWheelEvent
的構造函數不提供設置事件類型的可能性。
看着QEvent
的內部我可以簡單地將受保護的成員類型t設置爲由registerEventType()
返回的事件類型。這是否有副作用?
如果我只是從QWheelEvent
派生出來,我也可以使用dynamic_cast
來找出是否是我自己的事件攜帶我的自定義數據。在檢查這個類型之後,一個簡單的靜態轉換應該會更好。
對此有何看法?
編輯:我已經想盡了辦法與dynamic_casts
但劇組似乎失敗。如果Qt在內部深度複製事件,則這是可能的,以便創建新的QWheelEvent
並通過事件系統而不是我的CustomWheelEvent
。通過這種方式,我自己的數據(在CustomWheelEvent
中定義)被剝離出來並且只處理基類(QWheelEvent
)。我原本以爲指針是按原樣使用的,所以我可以依靠dynamic_cast
。有關這方面的更多信息表示讚賞
我想知道爲什麼下面的答案(包括我的評論)被刪除。有線程的歷史嗎?我想問作者關於他或她的原因:-) – FrozenTarzan
答案的作者可以隨時刪除他的帖子。你需要10k代表看到刪除的答案。 – usr1234567
謝謝...所以不會看到它looooong時間^^ – FrozenTarzan