程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-06(1)

pyqt5-实时刷新页面(QApplication.processEvents())

发布于2019-08-07 16:22     阅读(1981)     评论(0)     点赞(0)     收藏(5)


对于执行很耗时的程序来说,由于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_())


所属网站分类: 技术文章 > 博客

作者:djhsj7

链接:https://www.pythonheidong.com/blog/article/11508/41ca9104d543cfb4d1b5/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

0 0
收藏该文
已收藏

评论内容:(最多支持255个字符)