I was trying to get an example working with a QThread. I wound up creating one but after running it for a while and pressing buttons I got the error... QPainter::end: Painter ended with 2 saved states
Am I doing something wrong? I wanted an example where a worker thread would query a database or some other long running operation and leave the GUI responsive (although disabling certain elements like the button it was launched from). This is the code I was running.... from PyQt4.QtCore import * from PyQt4.QtGui import * class Blah(QThread): def __init__(self, parent=None): super(Blah, self).__init__(parent) print 'new thread created' def run(self): print 'running' self.parent().setEnabled(False) import time for i in xrange(10): self.parent().setText("%02d" % i) time.sleep(.1) self.parent().setText("Push Me") self.parent().setEnabled(True) def say_hi(): print 'HELLO' class MyDialog(QDialog): def __init__(self, *args, **kwargs): super(MyDialog, self).__init__(*args, **kwargs) self.setWindowTitle("Hey, hows it going?") layout = QHBoxLayout() self.buttons = [] for i in xrange(5): button = QPushButton("Push Me") self.buttons.append(button) blah = Blah(button) self.connect(button, SIGNAL("pressed()"), blah.start) layout.addWidget(button) self.setLayout(layout) if __name__ == '__main__': import sys app = QApplication(sys.argv[1:]) md = MyDialog() md.show() sys.exit(app.exec_()) _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt