PyQt4 Im Thread auf Benutzereingaben von der GUI warten

Ich habe eine Thread-Klasse "MyThread" und meine Hauptanwendung, die einfach "Gui" heißt. Ich möchte ein paar Objekte aus der Thread-Klasse erstellen, aber für dieses Beispiel habe ich nur ein Objekt erstellt. Die Thread-Klasse leistet einige Arbeit und sendet dann ein Signal an die Gui-Klasse, das angibt, dass eine Benutzereingabe erforderlich ist (diese Angabe ändert vorerst einfach den Text einer Schaltfläche). Dann sollte der Thread auf eine Benutzereingabe warten (in diesem Fall einen Knopfdruck) und dann weitermachen, was er tut ...

from PyQt4 import QtGui, QtCore
class MyTrhead(QtCore.QThread):
    trigger = QtCore.pyqtSignal(str)

    def run(self):
        print(self.currentThreadId())
        for i in range(0,10):
            print("working ")
            self.trigger.emit("3 + {} = ?".format(i))
            #### WAIT FOR RESULT
            time.sleep(1)


class Gui(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(Gui, self).__init__(parent)
        self.setupUi(self)
        self.pushButton.clicked.connect(self.btn)

        self.t1 = MyTrhead()
        self.t1.trigger.connect(self.dispaly_message)
        self.t1.start()
        print("thread: {}".format(self.t1.isRunning()))


    @QtCore.pyqtSlot(str)
    def dispaly_message(self, mystr):
        self.pushButton.setText(mystr)

    def btn(self):
        print("Return result to corresponding thread")



if "__main__" == __name__:
    import sys
    app = QtGui.QApplication(sys.argv)
    m = Gui()
    m.show()
    sys.exit(app.exec_())

Wie kann ich in (mehreren) Threads auf eine Benutzereingabe warten?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage