列表框架还有一个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_())
运行程序之后,弹出的窗口如下:
好了,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数据分析》国庆期间发布