第27天 | 28天学会PyQt5,高级控件之QListWidget

列表框架还有一个QListWidget,它是QListView的子类,与QListView不同的是,它已经建立了一个数据储存模型QListWidgetItem,直接调用addItem()函数就可以添加条目(Item),常用的事件类型有:

事件类型

描述

currentItemChanged

列表中的条目发生改变时,触发此事件;

itemClicked

点击列表中的条目时,触发此事件。

QListWidget常用的方法如下表所示:

方法

描述

addItem()

在列表中添加QListWidgetItem对象或字符串;

addItems()

一次添加列表中的多个条目;

insertItem()

在指定地索引处插入条目;

clear()

清空列表的内容;

setCurrentItem()

设置当前所选的条目;

sortItems()

按升序重新排列条目。

程序清单:listwidget.py

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget,
  QHBoxLayout, QListWidget


# 继承QWidget
class ListWidget(QWidget):
    sports = ["足球", "篮球", "排球"]

    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        # 设置布局
        layout = QHBoxLayout()
        # 数据层次结构,10行5列
        list_widget = QListWidget()
        list_widget.addItems(self.sports)
        layout.addWidget(list_widget)
        # 单击事件
        list_widget.itemClicked.connect(self.list_click)
        self.setLayout(layout)
        # 调整窗口大小
        self.resize(900, 500)
        # 窗口居中
        self.center()
        # 窗口标题
        self.setWindowTitle("QListWidget应用")
        # 显示窗口
        self.show()
        # 获取文件夹路径

    def list_click(self, item):
        sport = item.text()
        print(sport)

    # 实现居中
    def center(self):
        f = self.frameGeometry()
        c = QDesktopWidget().availableGeometry().center()
        f.moveCenter(c)
        self.move(f.topLeft())


if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = ListWidget()
    sys.exit(app.exec_())

运行程序之后,弹出的窗口如下:

第27天 | 28天学会PyQt5,高级控件之QListWidget

好了,QListWidget的内容就说到这了,关注我,下一节更精彩。

今日头条:老陈说编程,到2021年国庆节,Python就全部分享完了,完整的课程有:
1.《12天搞定Python》
2.《16天搞定Python数据分析》
3.《10天搞定Python网络爬虫》
4. 《Django3.0项目实战》
5. 《25天学会Wxpython》
6. 《28天学会PyQt5》发布中
7. 《25天学会Seaborn数据分析》在csdn发布完了
8. 《3天搞定Pyecharts数据分析》国庆期间发布

上一篇:MySQL表关联的几种常用方式


下一篇:python-从pyqt4中的listWidget返回值