def _setup_ui(self): self.resize(641, 512) self.setWindowTitle('orange') central = QtGui.QWidget(self) self.setCentralWidget(central) self.orange = OrangeWidget(central) self.orange.setMinimumSize(512, 512) right = QtGui.QWidget(central) self.fps = QtGui.QLabel(right) vsync = QtGui.QPushButton(right, text='Toggle Vsync', clicked=self._toggle_vsync) about = QtGui.QPushButton(right, text='About Qt', clicked=self._about_qt) vbox = QtGui.QVBoxLayout(right) vbox.addWidget(self.fps, 0) vbox.addWidget(vsync, 0) vbox.addWidget(about, 0) vbox.addStretch(0) hbox = QtGui.QHBoxLayout(central) hbox.setContentsMargins(0, 0, 0, 0) hbox.addWidget(self.orange, 1) hbox.addWidget(right)
class MainWindow(QtGui.QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self._setup_ui() self.fps_timer = self.startTimer(1500) def _setup_ui(self): self.resize(641, 512) self.setWindowTitle('orange') central = QtGui.QWidget(self) self.setCentralWidget(central) self.orange = OrangeWidget(central) self.orange.setMinimumSize(512, 512) right = QtGui.QWidget(central) self.fps = QtGui.QLabel(right) vsync = QtGui.QPushButton(right, text='Toggle Vsync', clicked=self._toggle_vsync) about = QtGui.QPushButton(right, text='About Qt', clicked=self._about_qt) vbox = QtGui.QVBoxLayout(right) vbox.addWidget(self.fps, 0) vbox.addWidget(vsync, 0) vbox.addWidget(about, 0) vbox.addStretch(0) hbox = QtGui.QHBoxLayout(central) hbox.setContentsMargins(0, 0, 0, 0) hbox.addWidget(self.orange, 1) hbox.addWidget(right) def closeEvent(self, event): if event.isAccepted(): self.orange.cleanup() def timerEvent(self, event): if self.fps_timer == event.timerId(): self.fps.setText('%.0f fps' % (self.orange.fps + 0.5)) self.orange.reset_fps() def _toggle_vsync(self): fmt = self.orange.format() fmt.setSwapInterval((fmt.swapInterval() + 1) % 2) self.orange.setFormat(fmt) def _about_qt(self): QtGui.QApplication.aboutQt()