GUI编程常见问题
SeniorZ-PyQt5+socket编程界面卡住未响应
现象
在使用Qt Desinger设计gui界面后,在python中运行界面使用按钮时,界面出现假卡死。
原因
gui界面运行后会作为主线程,若在主线程中进行耗时操作,就会导致界面出现假死的情况
解决办法
使用多线程,将耗时操作放在其他线程进行,主线程就不会受到影响
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import threading
class MyMainForm(QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super(MyMainForm, self).__init__(parent) self.setupUi(self)
self.th = None self.musicSpider_Button.clicked.connect(self.musicSpider) def musicSpider(self): self.th = threading.Thread(target=self.ms) self.th.setDaemon(True) self.th.start()
def ms(self): musicSpider(self.user_idEdit.text())
|