鍍金池/ 問答/Python  網(wǎng)絡(luò)安全/ PyQt5使用了QThread分離UI和邏輯,結(jié)果UI還是會卡住

PyQt5使用了QThread分離UI和邏輯,結(jié)果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()

請問這個實現(xiàn)哪里出了問題?

回答
編輯回答
涼汐

已解決,self.search.run()用錯了。。。

2017年6月15日 04:34