import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import time
class demoProcessEvents(QWidget):
def __init__(self):
super(demoProcessEvents, self).__init__()
self.setWindowTitle('0509A-processEvents')
self.listWin = QListWidget()
self.btn = QPushButton("Start")
layout = QGridLayout(self)
layout.addWidget(self.listWin, 0, 0, 1, 3)
layout.addWidget(self.btn,1, 1)
self.btn.clicked.connect(self.slotAdd)
self.setLayout(layout)
def slotAdd(self):
for n in range(10):
text = 'File index {0}'.format(n)
self.listWin.addItem(text)
#如果不用processEvents,程序会完成循环后才会显示内容,在循环期间,程序会失去响应
QApplication.processEvents()
#不用sleep会计算过快,数字一下子就显示出来了
time.sleep(1)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = demoProcessEvents()
win.show()
sys.exit(app.exec_())