def main(args): app=QApplication(args) win=MainWindow() win.show() app.connect(app, SIGNAL("lastWindowClosed()") , app , SLOT("quit()") ) app.exec_loop()
class Window(Driver, Gfx.Window): def __init__(self, size=(640, 480), title="qt.Graph", app=None): Gfx.Window.__init__(self, size, title) if app != None: self.app = app else: self.app = QApplication(sys.argv) self.pixmap = qt.QPixmap(size[0], size[1]) self.pixmap.fill(qt.QColor(255,255,255)) self.win = QLabel("", None) self.win.setPixmap(self.pixmap) self.win.show() #self.win.setMinimumSize(size[0], size[1]) #self.win.setMaximum(size[0], size[1]) self.win.resize(size[0], size[1]) if QT5: #self.lastClosedSignal = SIGNAL("lastWindowClosed()") self.app.lastWindowClosed.connect(self._qtEnd) else: QObject.connect(self.app, SIGNAL("lastWindowClosed()"), self._qtEnd) Driver.__init__(self, self.pixmap) def refresh(self): self.win.setPixmap(self.pixmap) self.win.update() def quit(self): self._qtEnd() self.win.close() self.win = None self.app.quit() def waitUntilClosed(self): self.refresh() if QT3: self.app.exec_loop() else: self.app.exec_()