PyQt6 QListWidget列表控件

​锋哥原创的PyQt6视频教程:

2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计35条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~、第2讲 PyQt6库和工具库QTDesigner安装与配置、第3讲 PyQt6第一个程序HelloWorld实现等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV11C4y1P7fj/

PyQt6提供了两种列表,分别是QListWidget和QListView,其中,QListView是基于模型的,它是QListWidget的父类,使用QListView时,首先需要建立模型,然后再保存数据;而QListWidget是QListView的升级版本,它已经内置了一个数据存储模型QListWidgetItem,我们在使用时,不必自己建立模型,而直接使用addItem()或者addItems()方法即可添加列表项。所以在实际开发时,推荐使用QListWidget控件作为列表。

QListWidget常用方法:

方法 说明
addItem() 向列表中添加项
addItems() 一次向列表中添加多项
insertItem() 在指定索引处插入项
setCurrentItem() 设置当前选择项
item.setToolTip() 设置提示内容
item.isSelected() 判断项是否选中
setSelectionMode() 设置列表的选择模式,支持以下5种模式。 QAbstractItemView.NoSelection:不能选择; QAbstractItemView.SingleSelection:单选; QAbstractItemView.MultiSelection:多选; QAbstractItemView.ExtendedSelection:正常单选,按Ctrl或者Shift键后,可以多选; QAbstractltemView.ContiguousSelection:与 ExtendedSelection类似
setSelectionBehavior() 设置选择项的方式,支持以下3种方式。 QAbstractItemView.SelectItems:选中当前项; QAbstractltemView.SelectRows:选中整行; OAbstractltemView.SelectColumns:选中整列
setWordWrap() 设置是否自动换行,True表示自动换行,False表示不自动换行
setViewMode() 设置显示模式,有以下两种显示模式。 QListView.ListMode:以列表形式显示; QListView.IconMode:以图表形式显示
item.text() 获取项的文本
clear() 删除所有列表项

PyQt6 QListWidget列表控件_第1张图片

UI生成参考代码:

from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(642, 475)
        self.listWidget = QtWidgets.QListWidget(parent=Form)
        self.listWidget.setGeometry(QtCore.QRect(100, 40, 371, 311))
        self.listWidget.setSelectionMode(QtWidgets.QAbstractItemView.SelectionMode.MultiSelection)
        self.listWidget.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectionBehavior.SelectRows)
        self.listWidget.setViewMode(QtWidgets.QListView.ViewMode.IconMode)
        self.listWidget.setWordWrap(True)
        self.listWidget.setObjectName("listWidget")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))

Main参考代码:

"""
    python加载ui文件
    作者 : 小锋老师
    官网 : www.python222.com
"""
import sys
import time

from PyQt6.QtGui import QValidator, QIntValidator, QIcon
from PyQt6.QtWidgets import QApplication, QLabel, QLineEdit, QTextEdit, QComboBox, QFontComboBox, QListWidget, \
    QListWidgetItem
from PyQt6 import uic, QtGui

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ui = uic.loadUi("./QListWidget列表控件.ui")
    myListWidget: QListWidget = ui.listWidget
    lwItem = QListWidgetItem()
    lwItem.setText("进击的巨人 最终季 完结篇 后篇 / Attack on Titan: The Final Season, The Final Chapters - Part 2")
    myListWidget.addItem(lwItem)

    myListWidget.addItem("杀手")
    list = [
        "第八个嫌疑人 / 第8个嫌疑人 / Dust To Dust ",
        "最后的真相 / 隐秘的真相 / Heart's Motive ",
        "坠落的审判 / 坠楼死亡的剖析 / 一场坠楼的剖析",
        "猜谜女士 / 常识女王(台)"
    ]
    myListWidget.addItems(list)

    myListWidget.insertItem(1, "测试插入")

    myListWidget.setCurrentItem(lwItem)

    selectedList = myListWidget.selectedItems()
    for item in selectedList:
        print(item.text())

    ui.show()

    sys.exit(app.exec())

你可能感兴趣的:(Python,QListWidget,PyQt6,pyQt,python)