VTK与Qt兼容的问题

2 投票
1 回答
1176 浏览
提问于 2025-04-16 21:34

我正在尝试在Qt4窗口中嵌入VTK5的可视化,但遇到了一些问题。以下代码在我的Mac(10.6,Python 2.7)上无法运行:

from PyQt4 import QtGui
from vtk.qt4 import QVTKRenderWindowInteractor
import sys

class Window(QVTKRenderWindowInteractor.QVTKRenderWindowInteractor):
    def __init__(self):
        QVTKRenderWindowInteractor.QVTKRenderWindowInteractor.__init__(self,None)

if __name__=='__main__':
    app = QtGui.QApplication(sys.argv)
    w = Window()
    w.show()
    sys.exit(app.exec_())

当我尝试运行这段代码时,出现的错误是:

X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  2 (X_ChangeWindowAttributes)
  Resource id in failed request:  0x1a310140
  Serial number of failed request:  7
  Current serial number in output stream:  9

有没有人知道可能发生了什么问题?注意,如果我切换到

class ConeWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self,None)

我会看到一个小的空窗口弹出来,这正是我预期的。

1 个回答

2

我最终搞明白了,所以把解决方案放在这里,希望对其他人有用。我是这样安装VTK5的:

sudo port install vtk5 +python27

但我需要包含qt4_mac这个版本。下面的方式可以成功:

sudo port install vtk5 +python27 +qt4_mac

撰写回答