如何更新QListWidget
How to update QListWidget
如何更新 QLIstWidget 以在添加时显示项目。
就像我在循环中将 100 个 QListWidgetItems 添加到 QListWidget 一样。所有这 100 个项目只有在循环完成后才可见。但我想知道是否可以在添加项目时显示项目。
我尝试了 self.ListWidget.setUpdatesEnabled(True)
但没有成功。
感谢任何帮助。
您可以在循环中重新绘制列表小部件:
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'
如何更新 QLIstWidget 以在添加时显示项目。
就像我在循环中将 100 个 QListWidgetItems 添加到 QListWidget 一样。所有这 100 个项目只有在循环完成后才可见。但我想知道是否可以在添加项目时显示项目。
我尝试了 self.ListWidget.setUpdatesEnabled(True)
但没有成功。
感谢任何帮助。
您可以在循环中重新绘制列表小部件:
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'