使用qlistwidget 实现定时刷新自定义类显示
时间: 2023-08-31 20:06:04 浏览: 216
自定义下拉刷新ListView
可以通过以下步骤实现:
1. 创建自定义类并实现相关属性和方法,如下所示:
```python
class Item:
def __init__(self, name, price):
self.name = name
self.price = price
def __str__(self):
return f"{self.name}: {self.price}"
```
2. 创建 QListWidget 控件并设置定时器,如下所示:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QListWidget, QListWidgetItem
from PyQt5.QtCore import QTimer
from item import Item
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.list_widget = QListWidget(self)
self.timer = QTimer(self)
self.timer.timeout.connect(self.refresh_list)
self.timer.start(1000)
def refresh_list(self):
items = [Item("item1", 10), Item("item2", 20), Item("item3", 30)]
self.list_widget.clear()
for item in items:
list_item = QListWidgetItem(str(item))
self.list_widget.addItem(list_item)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在定时器触发的 refresh_list 方法中,创建 Item 实例列表并将其添加到 QListWidget 控件中。每次刷新前先清空 QListWidget,然后使用 QListWidgetItem 将 Item 实例的字符串形式添加到 QListWidget 中。
这样就可以实现定时刷新自定义类的显示了。
阅读全文