Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python OSX上的PyQt VTK仅显示在显示窗口的左下角_Python_Macos_Pyqt_Vtk - Fatal编程技术网

Python OSX上的PyQt VTK仅显示在显示窗口的左下角

Python OSX上的PyQt VTK仅显示在显示窗口的左下角,python,macos,pyqt,vtk,Python,Macos,Pyqt,Vtk,在OSX上使用Python 2.7、PyQT5.6和VTK7.1时,我遇到了一个奇怪的问题。渲染窗口仅占据整个显示窗口的左下四分之一。虽然我在windows上使用相同版本的libs尝试了相同的代码,但效果很好。代码如下: from PyQt5.QtWidgets import * import vtk from vtk.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor import sys class Ui_Main

在OSX上使用Python 2.7、PyQT5.6和VTK7.1时,我遇到了一个奇怪的问题。渲染窗口仅占据整个显示窗口的左下四分之一。虽然我在windows上使用相同版本的libs尝试了相同的代码,但效果很好。代码如下:

from PyQt5.QtWidgets import *
import vtk
from vtk.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
import sys

class Ui_MainWindow(object):
   def setupUi(self, MainWindow):
       MainWindow.setObjectName("MainWindow")
       MainWindow.resize(603, 553)
       self.centralWidget = QWidget(MainWindow)
       self.gridlayout = QGridLayout(self.centralWidget)
       self.vtkWidget = QVTKRenderWindowInteractor(self.centralWidget)
       self.gridlayout.addWidget(self.vtkWidget, 0, 0, 100, 100)
       self.buttonLeft = QPushButton("Left")
       self.gridlayout.addWidget(self.buttonLeft, 96,48,1,1)
       self.buttonRight = QPushButton("Right")
       self.gridlayout.addWidget(self.buttonRight, 96,52,1,1)
       self.buttonUp= QPushButton("Up")
       self.gridlayout.addWidget(self.buttonUp, 94,50,1,1)
       self.buttonDown = QPushButton("Down")
       self.gridlayout.addWidget(self.buttonDown, 98,50,1,1)
       self.buttonFire = QPushButton("Fire Torpedo")
       self.gridlayout.addWidget(self.buttonFire, 95,50,3,1)
       MainWindow.setCentralWidget(self.centralWidget)


class SimpleView(QMainWindow):

   def __init__(self, parent = None):
       QMainWindow.__init__(self, parent)
       self.ui = Ui_MainWindow()
       self.ui.setupUi(self)
       self.ren = vtk.vtkRenderer()
       self.ui.vtkWidget.GetRenderWindow().AddRenderer(self.ren)
       self.iren = self.ui.vtkWidget.GetRenderWindow().GetInteractor()

       # Create source
       source = vtk.vtkSphereSource()
       source.SetCenter(0, 0, 0)
       source.SetRadius(5.0)

       # Create a mapper
       mapper = vtk.vtkPolyDataMapper()
       mapper.SetInputConnection(source.GetOutputPort())

       # Create an actor
       actor = vtk.vtkActor()
       actor.SetMapper(mapper)

       self.ren.AddActor(actor)

if __name__ == "__main__":

   app = QApplication(sys.argv)
   window = SimpleView()
   window.show()
   window.iren.Initialize() # Need this line to actually show the render inside Qt
   sys.exit(app.exec_())
OSX上的结果如下所示:

在OSX中显示结果

请注意,按钮甚至没有显示出来

在Windows上,结果如下所示:

在Windows中显示结果

如果你有任何建议,请告诉我

非常感谢