2010-01-13 72 views
0

我試圖從外部應用程序(python OCC)使用窗口小部件的winId嵌入顯示到(Py)Qt中。但是當我將它傳遞給OCC時,我得到一個溢出錯誤。 檢查winId qt返回其4318283408這是一個比32位數字更多。我運行64位(OSX)和兩個庫都編譯爲64位,但我有一個預感OCC只喜歡32位數仍然。所以我的問題是,有沒有辦法控制Qt返回的winId的範圍?Qt winId()強制32位值

感謝

亨裏克

回答

0

展望Qt的源代碼,文件src/gui/kernel/qwindowdefs.h中,你會發現WId被typedef定義到long 64位OSX(這是int爲32位OSX )。在64位OSX上的一個long是8個字節長(或64位),因此4318283408是一個有效值。

如果你想強制winId()返回一個32位的值,你需要鏈接到一個32位版本的Qt庫。

+0

嗯..我使用的兩個庫都是64位,但我懷疑OCC的64位端口並不完全是64位準備好的。希望Qt中可能存在一些模糊的設置,可能會以某種方式修改winId?至少作爲一個臨時黑客 – Henrik