Qt graphic item日記

今天在用用graphic view 加入graphic item的時候要引入一個context menu,自然就要對context menu上的action進行slot處理,但是graphic item不是從qobject繼承下來的,所以這裏就需要多重繼承,再次添加一個對qobject的繼承,所有涉及到qobject的修改就要重新qmake,因爲這時候需要重新構造meta文件,這些都不是問題,這些搞好之後就問題出現了,說meta文件裏有一系列的錯誤,原來qt在多重繼承的時候要求qobject放在第一位置,修改之後可以編譯了,但是會給一個warning,再跟蹤下去,原來graphic view有專門提供一個graphic object的東西來替代graphic item + qobject的結構,折騰了一圈原來這麼簡單就可以解決了,好多時候就是這樣的,知道就知道,不知道就不知道,和邏輯的推測關係不大,越是面向應用層的東西越有這樣的特點,知識點零碎,要掌握的細節很多。

這些弄好了,可以編譯通過了,運行發現一個crash的bug,好像是graphic object的指針出了問題,考慮到一個地方做了reinterpret_cast的操作比較可疑,google之後果然如此,涉及到多態的情況最好還是用dynamic_cast,換過之後就OK了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章