pyqt5-列表(QListView和QListWidget)

目录

简介

方法

 信号

程序

结果截图


简介

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_())

结果截图

pyqt5-列表(QListView和QListWidget)_第1张图片

你可能感兴趣的:(PyQt5,qt,开发语言)