亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Pyqt GUI沒有響應

Pyqt GUI沒有響應

繁星coding 2021-03-30 09:10:35
pyqt gui沒有響應我正在嘗試為我的Linkedin刮板程序做一個GUI。但是一旦主程序開始執行,GUI便不會響應。在調用主要函數之前它的工作正常。桂碼是 class MainWindow(QMainWindow):     def __init__(self):         QMainWindow.__init__(self)         self.setMinimumSize(QSize(720, 540))         self.setWindowTitle("LinkedIn Scraper")         self.nameLabel = QLabel(self)         self.nameLabel.setText('Keywords:')         self.keyword = QLineEdit(self)         self.keyword.move(130, 90)         self.keyword.resize(500, 32)         self.nameLabel.move(70, 90)         self.nameLabel = QLabel(self)         self.nameLabel.setText('Sector:')         self.sector = QLineEdit(self)         self.sector.move(130, 180)         self.sector.resize(500, 32)         self.nameLabel.move(70, 180)         self.btn = QPushButton('Download', self)         self.btn.clicked.connect(self.doAction)         self.btn.resize(200, 32)         self.btn.move(270, 360)         self.pbar = QProgressBar(self)         self.pbar.setGeometry(110, 450, 550, 25)     def doAction(self):         print('Keyword: ' + self.keyword.text())         print('Sector: ' + self.sector.text())         main(self.keyword.text(),self.sector.text())也想將該進度欄與main鏈接,我該怎么做?主要功能是一個很長的功能,具有許多子功能。所以我想將其鏈接到每個子功能
查看完整描述

1 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

GUI應用程序是圍繞事件循環構建的:Qt坐在那里,接受來自用戶的事件,并調用您的處理程序。您的處理程序必須盡快返回,因為Qt在您返回之前無法接受下一個事件。


這就是GUI不響應的意思:事件只是排隊,因為您沒有讓Qt對它們做任何事情。


有幾種解決方法,但是,特別是對于Qt,慣用的方法是啟動后臺線程來完成工作。


您確實需要閱讀有關Qt中的線程的教程。從快速搜索,這一個看起來不錯的,盡管它是PyQt4的。但是您可能可以為PyQt5找到一個不錯的選擇。


簡短的版本是:


class MainBackgroundThread(QThread):

    def __init__(self, keyword, sector):

        QThread.__init__(self)

        self.keyword, self.sector = keyword, sector

    def run(self):

        main(self.keyword, self.sector)

現在,您的doAction方法更改為:


 def doAction(self):

     self.worker = MainBackgroundThread(self.keyword.text(), self.sector.text())

     self.worker.start()


查看完整回答
反對 回復 2021-04-13
  • 1 回答
  • 0 關注
  • 329 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號