zoukankan      html  css  js  c++  java
  • PyQt5实时刷新

    对于执行很耗时的程序来说,由于PyQt需要等待程序执行完毕才能进行下一步,这个过程表现在界面上就是卡顿,而如果需要执行这个耗时程序时不断的刷新界面。那么就可以使用QApplication.processEvents(),那么就可以一边执行耗时程序,一边刷新界面的功能,给人的感觉就是程序运行很流畅,因此QApplicationEvents()的使用方法就是,在主函数执行耗时操作的地方,加入QApplication.processEvents()。

    import sys,time
    from PyQt5.QtWidgets import QWidget,QPushButton,QApplication,QListWidget,QGridLayout
    
    class WinForm(QWidget):
        def __init__(self,parent=None):
            super(WinForm, self).__init__(parent)
            #设置标题与布局方式
            self.setWindowTitle('实时刷新界面的例子')
            layout=QGridLayout()
    
            #实例化列表控件与按钮控件
            self.listFile=QListWidget()
            self.btnStart=QPushButton('开始')
    
            #添加到布局中指定位置
            layout.addWidget(self.listFile,0,0,1,2)
            layout.addWidget(self.btnStart,1,1)
    
            #按钮的点击信号触发自定义的函数
            self.btnStart.clicked.connect(self.slotAdd)
            self.setLayout(layout)
        def slotAdd(self):
            for n in range(10):
                #获取条目文本
                str_n='File index{0}'.format(n)
                #添加文本到列表控件中
                self.listFile.addItem(str_n)
                #实时刷新界面
                QApplication.processEvents()
                #睡眠一秒
                time.sleep(1)
    if __name__ == '__main__':
        app=QApplication(sys.argv)
        win=WinForm()
        win.show()
        sys.exit(app.exec_())
    不考虑业务场景,一味的争执技术的高下,都是耍流氓。
  • 相关阅读:
    bootstrap入门基础
    java遇见的问题分析
    蓝桥杯练习
    win7 在文件夹上右键后 以管理员启动命令窗口
    渲染10万条数据的性能问题
    闲聊一下百度的Unit
    利用c# 多屏显示
    学习Xposed --记WX功能分析的过程
    从零开始打jar包--补充
    修改windows7 的管理员密码
  • 原文地址:https://www.cnblogs.com/leoych/p/14450854.html
Copyright © 2011-2022 走看看