pyqt5-實時刷新頁面(QApplication.processEvents())


對於執行很耗時的程序來說,由於PyQt需要等待程序執行完畢才能進行下一步,這個過程表現在界面上就是卡頓,而如果需要執行這個耗時程序時不斷的刷新界面。那么就可以使用QApplication.processEvents(),那么就可以一邊執行耗時程序,一邊刷新界面的功能,給人的感覺就是程序運行很流暢,因此QApplicationEvents()的使用方法就是,在主函數執行耗時操作的地方,加入QApplication.processEvents()

  1.  1 import sys,time
     2 from PyQt5.QtWidgets import QWidget,QPushButton,QApplication,QListWidget,QGridLayout
     3 
     4 class WinForm(QWidget):
     5     def __init__(self,parent=None):
     6         super(WinForm, self).__init__(parent)
     7         #設置標題與布局方式
     8         self.setWindowTitle('實時刷新界面的例子')
     9         layout=QGridLayout()
    10 
    11         #實例化列表控件與按鈕控件
    12         self.listFile=QListWidget()
    13         self.btnStart=QPushButton('開始')
    14 
    15         #添加到布局中指定位置
    16         layout.addWidget(self.listFile,0,0,1,2)
    17         layout.addWidget(self.btnStart,1,1)
    18 
    19         #按鈕的點擊信號觸發自定義的函數
    20         self.btnStart.clicked.connect(self.slotAdd)
    21         self.setLayout(layout)
    22     def slotAdd(self):
    23         for n in range(10):
    24             #獲取條目文本
    25             str_n='File index{0}'.format(n)
    26             #添加文本到列表控件中
    27             self.listFile.addItem(str_n)
    28             #實時刷新界面
    29             QApplication.processEvents()
    30             #睡眠一秒
    31             time.sleep(1)
    32 if __name__ == '__main__':
    33     app=QApplication(sys.argv)
    34     win=WinForm()
    35     win.show()
    36     sys.exit(app.exec_())


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM