python - PyQT + VTK : QVTKRenderWindowInteractor is invisible -
i've made little program visualize 3d data pyqt , vtk. qvtkrenderwindowinteractor
embed in qmainwindow
centralwidget
.
everything works fine if add :
self.setwindowflags(qtcore.qt.framelesswindowhint) self.setattribute(qtcore.qt.wa_translucentbackground, true)
i hole (the qvtkrenderwindowinteractor
100% transparent). other widgets displayed correctly (menubar, statusbar, etc..)
i've tried several combinations , seems issue doesn't comes stylesheet. have absolutly no idea going on here.
any welcome :)
edit : here sample (python 2.7 , vtk. i'm using python(x,y)) :
#!/usr/bin/env python import sys import vtk vtk.qt4.qvtkrenderwindowinteractor import qvtkrenderwindowinteractor pyqt4 import qt pyqt4 import qtgui, qtcore class test(qt.qmainwindow): """test class""" def __init__(self, parent=none): qt.qmainwindow.__init__(self, parent) self.setwindowflags(qtcore.qt.framelesswindowhint) self.setattribute(qtcore.qt.wa_translucentbackground, true) self.setwindowtitle(self.tr("pyqt4 vtk test")) self.workspace = qt.qworkspace() self.setcentralwidget(self.workspace) self.frame = qtgui.qframe(self.workspace) self.hbox = qtgui.qhboxlayout() # create widget self.widget = qvtkrenderwindowinteractor(self.frame) self.widget.initialize() self.widget.start() # if dont want 'q' key exit comment this. self.widget.addobserver("exitevent", lambda o, e, a=app: a.quit()) self.cone = vtk.vtkconesource() self.cone.setresolution(8) self.conemapper = vtk.vtkpolydatamapper() self.conemapper.setinput(self.cone.getoutput()) self.coneactor = vtk.vtkactor() self.coneactor.setmapper(self.conemapper) self.ren = vtk.vtkrenderer() self.ren.addactor(self.coneactor) self.renwin=self.widget.getrenderwindow() self.renwin.addrenderer(self.ren) self.hbox.addwidget(self.widget) self.frame.setlayout(self.hbox) self.workspace.addwindow(self.frame) if __name__ == "__main__": app = qt.qapplication(sys.argv) mainwindow = test() mainwindow.show() sys.exit(app.exec_())
Comments
Post a Comment