Qt winId()强制32位值

时间:2010-01-13 02:16:50

标签: python qt pyqt4

我试图使用小部件的winId将外来应用程序(python OCC)的显示嵌入到(Py)Qt中。但是当我把它传递给OCC时,我得到一个溢出错误。 检查winId qt返回其4318283408,这是一个超过32位的数字。我运行64位(osx),两个库都编译为64位,但我有一种预感,OCC只喜欢32位数字。所以我的问题是,有没有办法控制Qt返回的winId的范围?

由于

的Henrik

1 个答案:

答案 0 :(得分:0)

查看Qt的源代码,在src/gui/kernel/qwindowdefs.h文件中,您会发现WId对64位OSX long的类型定义(int对于32位OSX)。 64位OSX上的long长度为8个字节(或64位),因此4318283408是有效值。

如果要强制winId()返回32位值,则需要链接到Qt库的32位版本。