Windows 32上的PySide和VTK

2024-09-30 20:35:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个PySide/VTK应用程序,使用qvtkrenderWindowInteractior连接。 pyside1.0.9可以在基于Unix的QT4.8/vtk5.8系统上正常工作。(所有Python 2.7.3)

然后我在一个Microsoft Windows系统(XP 32)上使用PySide win32发行版(1.1.x)Qt4和VTK 5.10进行移植,在检索自身.winId()预计作为int可浇铸:

TypeError: int() argument must be a string or a number, not 'PyCObject'

pysideapi实际上表示PySide.QtGui.QWidget.winId()返回一个长。。。在

我将在微软Windows和Unix上进行更多的测试,但也许你们中的一些人可以给我一些建议? 我要在哪里找什么?在

这是否与PySide接口生成器对Qt生成的一个32位系统的这个的错误转换有关?在

见第152行 http://sourceforge.net/p/pycgns/code/ci/17b696c3b0ad2b387b7e0ddc5d9b195cbc6abf70/tree/NAVigater/CGNS/NAV/Q7VTKRenderWindowInteractor.py


Tags: 应用程序windows系统unixargumentxpmicrosoftint
1条回答
网友
1楼 · 发布于 2024-09-30 20:35:23

将此行替换为:

WId = self.winId()

if type(WId).__name__ == 'PyCObject':
    from ctypes import pythonapi, c_void_p, py_object

    pythonapi.PyCObject_AsVoidPtr.restype  = c_void_p
    pythonapi.PyCObject_AsVoidPtr.argtypes = [py_object]

    WId = pythonapi.PyCObject_AsVoidPtr(WId)

self._RenderWindow.SetWindowInfo(str(int(WId)))

相关问题 更多 >