目录
简介
PyQt5提供了两种列表,分别是基于模型的ListView和基于项目的ListWidget,ListView是ListWidget的父类。
使用ListView时需要先创建模型,然后再保存数据;
而ListWidget内置一个数据存储模型QListWidgetItem,使用时不必自己建立模型,直接使用addItem或者addItems方法即可添加列表项。
方法
数据相关的方法: 1. addItem() 2. addItems() insertItem() item.setToolTip() 显示相关的方法: 1. setCurrentItem() 2. setSelectionMode() 设置选择模式 - QAbstractItemView.NoSelection 不能选择 - QAbstractItemView.SingleSelection 单选 - QAbstractItemView.MultiSelection 多选 - QAbstractItemView.ExtendedSelection 正常多选,按下Ctrl或者Shift键后,可以多选 3. setSelectionBehavior() 设置选择行为 - QAbstractItemView.SelectItems 选中当前项 - QAbstractItemView.SelectRows 选中整行 - QAbstractItemView.SelectColumns 选中整列 4. setWordWrap() 5. setViewMode() 设置显示模式 - QListView.ListMode - QListView.IconMode # 操作相关的方法: item.isSelected() item.text() clear()
信号
currentItemChanged
itemClicked
程序
import sys
from PyQt5.QtWidgets import *
from collections import OrderedDict
class QListWidgetDemo(QMainWindow):
dict = OrderedDict({
'1': 'fewfweefewffewfefwaefwefwefwf',
'2': 'fewfweefewffewfewfwewefwefwefwefwef',
'3': 'fewfweefewffewfewf',
'4': 'fewfweefewffewfefwaefweffwefwf',
'5': 'fewfweefewffewfewf',
'6': 'fewfweefewffewfwefewfwefwefwefewfwaeffewf',
'7': 'fewfweefewffewfewf',
'8': 'fewfweefewffewfewf',
'9': 'fewfweefewffewfewf',
'10': 'fewfweefewffewfewf'
})
def __init__(self, parent=None):
super().__init__(parent)
self.listWidget = QListWidget()
self.listWidget.setSelectionMode(QAbstractItemView.ExtendedSelection) # 设置选择模式:多选
self.listWidget.setSelectionBehavior(QAbstractItemView.SelectRows) # 选中行为:选中整行
self.listWidget.setViewMode(QListView.ListMode) # 列表形式展示数据
self.listWidget.setWordWrap(True)
self.listWidget.itemClicked.connect(self.getText)
for k, v in self.dict.items():
self.item = QListWidgetItem(self.listWidget)
self.item.setText(k + v)
self.item.setToolTip(v)
self.setCentralWidget(self.listWidget)
def getText(self, item):
print(item.text())
if __name__ == '__main__':
app = QApplication(sys.argv)
window = QListWidgetDemo()
window.show()
sys.exit(app.exec_())