def __init__(self, qtApp, close_callback = None, render3D=True, showRGB=True): super(RGBDViewer, self).__init__() self.mainLayout = QtGui.QHBoxLayout() self.qtApp = qtApp self.rgbLabel = QtGui.QLabel() # A widget where there is some control over what is being displayed. self.control_widget = QtGui.QWidget() self.control_layout = QtGui.QVBoxLayout() # An example of such control is the "pauseButton" self.pauseButton = QtGui.QPushButton('Pause/Unpause') # Whi is now added to the control widget self.control_layout.addWidget(self.pauseButton) self.control_widget.setLayout(self.control_layout) self.mainLayout.addWidget(self.control_widget) # Create the widget which allows to do OpenGL rendering self.glWidget = InteractiveViewer() self.glWidget.setFixedSize(600, 600) self.glWidget.ambient = (0.5,0.5,0.5,1.0) self.glWidget.position = (1.0,1.0,2.0) self.glWidget.diffuse = (1.0,1.0,1.0,1.0) self.glWidget.qtApp = qtApp # Make the connection of the update signal self.updateSignal.connect(self.glWidget.updateGL) widget = QtGui.QWidget() widget.setLayout(self.mainLayout) self.setCentralWidget(widget) # Whenever this "main window" is closed, then this function will be called self.close_callback = close_callback self.meshId = None self.showRGB = showRGB self.render3D = render3D self.rgbLabel.setMinimumSize(QtCore.QSize(640, 480)) self.rgb_size = 400, 400 self.mainLayout.addWidget(self.rgbLabel) self.glWidget.show() if not render3D: self.glWidget.hide()