如何更新QLIstWidget以将项目显示为何时添加 .
就像我在循环中向QListWidget添加100个QListWidgetItems一样 . 所有这100个项目仅在循环完成后才可见 . 但我想知道是否可以显示项目以及何时添加项目 .
我试过 self.ListWidget.setUpdatesEnabled(True) 但没有运气 .
self.ListWidget.setUpdatesEnabled(True)
任何帮助表示赞赏 .
你可以在循环中重新绘制listwidget:
def insertItem(self): for i in range(1,100): self.listWidget.addItem(str(i)) self.listWidget.repaint()
使用QTimer,您可以控制2个项目之间的延迟 .
编辑:也许我没有正确理解你的问题:你可以添加所有项目,隐藏它们然后逐项设置它们:
import sys from PyQt5 import QtGui, QtCore, QtWidgets class MyWidget(QtWidgets.QWidget): def __init__(self): QtWidgets.QWidget.__init__(self) self.setGeometry(200,100,600,900) self.listWidget = QtWidgets.QListWidget(self) self.listWidget.setGeometry(20,20,100,700) self.pushButton = QtWidgets.QPushButton(self) self.pushButton.setGeometry(20,800,100,30) self.pushButton.setText('show Items') self.pushButton.clicked.connect(self.showItems) self.timer = QtCore.QTimer() for i in range(0,100): self.listWidget.addItem(str(i)) self.listWidget.item(i).setHidden(True) self.z = 0 def showItems(self): self.timer.start(100) self.timer.timeout.connect(self.nextItem) def nextItem(self): try: self.listWidget.item(self.z).setHidden(False) self.listWidget.repaint() self.z += 1 except AttributeError: self.timer.stop() self.z = 0 app = QtWidgets.QApplication(sys.argv) widget = MyWidget() widget.show() sys.exit(app.exec_())
在pyqt4中用'QtGui'替换'QtWidgets'
1 回答
你可以在循环中重新绘制listwidget:
使用QTimer,您可以控制2个项目之间的延迟 .
编辑:也许我没有正确理解你的问题:你可以添加所有项目,隐藏它们然后逐项设置它们:
在pyqt4中用'QtGui'替换'QtWidgets'