PyQt5使用了QThread分离UI和逻辑,结果UI还是会卡住
class Ux(QMainWindow, window.Ui_MainWindow):
@pyqtSlot()
def do_stop_search(self):
pass
@pyqtSlot(dict)
def do_append_result(self, item):
pass
def on_btn_search_clicked(self):
self.search = SearchThread(self, text)
self.search.run()
class SearchThread(QThread):
to_append_result = pyqtSignal([dict])
to_stop_search = pyqtSignal()
def __init__(self, obj, key_word):
super().__init__()
self.site = obj.site # obj.site is a class
self.key = key_word
self.to_append_result.connect(obj.do_append_result)
self.to_stop_search.connect(obj.do_stop_search)
def run(self):
search = self.site(self.to_append_result)
search.search(self.key) # do a lot of things
self.to_stop_search.emit()
请问这个实现哪里出了问题?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
已解决,self.search.run()用错了。。。