I have a following problem:
upon pressing a button in PyQt made GUI I have to do two actions:
- Immediately update a QTextBrowser
- Run a method that will wait for some time and enable some buttons after.
What I get is that 1 and 2 are done at the same time, after a waiting period.
Part of the code is:
#in the signals definition...
signalUpdateProgressDialog = QtCore.pyqtSignal(str) # signal definition
#in the connections definition...
self.btnStopOpt.clicked.connect(self.clickStop1)
self.btnStopOpt.clicked.connect(self.clickStop)
def updateProgressDialog(self, dialog):
self.ProgressDialog.setHtml(dialog)
def clickStop1(self):
# notify
self.signalUpdateProgressDialog.emit('Message')
def clickStop(self):
# shut down thread...
print "Thread Stopped"
time.sleep(5)
# enable run button
self.btnRun.setEnabled(True)
I tried all in one clickStop method, I tried with and without emiting signal for updateProgress. Always, GUI is refreshed only after the waiting period.
Nevertheless, I encountered this problem before, I think I do not understand how it works with the GUI. In general, how to get the required behaviour: GUI is updated when the code line is executed?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…