0
我試圖從外部應用程序(python OCC)使用窗口小部件的winId嵌入顯示到(Py)Qt中。但是當我將它傳遞給OCC時,我得到一個溢出錯誤。 檢查winId qt返回其4318283408這是一個比32位數字更多。我運行64位(OSX)和兩個庫都編譯爲64位,但我有一個預感OCC只喜歡32位數仍然。所以我的問題是,有沒有辦法控制Qt返回的winId的範圍?Qt winId()強制32位值
感謝
亨裏克
我試圖從外部應用程序(python OCC)使用窗口小部件的winId嵌入顯示到(Py)Qt中。但是當我將它傳遞給OCC時,我得到一個溢出錯誤。 檢查winId qt返回其4318283408這是一個比32位數字更多。我運行64位(OSX)和兩個庫都編譯爲64位,但我有一個預感OCC只喜歡32位數仍然。所以我的問題是,有沒有辦法控制Qt返回的winId的範圍?Qt winId()強制32位值
感謝
亨裏克
展望Qt的源代碼,文件src/gui/kernel/qwindowdefs.h
中,你會發現WId
被typedef定義到long
64位OSX(這是int
爲32位OSX )。在64位OSX上的一個long
是8個字節長(或64位),因此4318283408是一個有效值。
如果你想強制winId()返回一個32位的值,你需要鏈接到一個32位版本的Qt庫。
嗯..我使用的兩個庫都是64位,但我懷疑OCC的64位端口並不完全是64位準備好的。希望Qt中可能存在一些模糊的設置,可能會以某種方式修改winId?至少作爲一個臨時黑客 – Henrik