文章目录
- 1、简介
- 2、属性
- 3、functions
- 3.1、访问属性相关 function
- 3.2、公共槽
- 3.3、Signal
- 3.4、其他方法
QT 官方文档参考地址:https://doc.qt.io/qt-5/qlistwidget.html
1、简介
moudle | class | 说明 |
---|---|---|
PyQt5.QtWidgets 包含了一整套UI元素控件,用于建立符合系统风格的界面 | QListWidget | 基于 Widget 的列表小部件 |
QListWidget
是一个用于显示列表的Qt部件,它提供了一个类似于QListView
所提供的列表视图,它可以显示文本、图像或自定义的部件项。它提供了一种方便的方式来管理和展示项目列表,并支持与这些项目相关的操作,如选择、拖放和排序。
主要功能:
-
显示项目:
QListWidget
用于显示项目列表。每个项目可以包含文本、图像或自定义的部件。 -
项目选择:用户可以通过单击或按下键盘上的上下箭头键来选择项目。可以选择单个项目或多个项目。
-
自定义项目视图:通过设置
QListWidget
的显示模式和布局,可以自定义项目在列表中的显示方式。例如,可以使用垂直或网格布局来显示项目。 -
拖放支持:
QListWidget
提供了内置的拖放支持,允许从列表中拖动项目或在列表中重新排序项目。 -
项目操作:可以对列表中的项目执行操作,如插入、删除、移动、清空等。
-
信号和槽机制:
QListWidget
提供了各种信号,用于捕获项目选择、双击、键盘事件等,以便执行相应的操作。 -
上下文菜单:可以为列表中的项目添加上下文菜单,以便在项目上右键单击时显示相关操作。
2、属性
1、count
(类型:const int
)
此属性保存列表中的项数,包括任何隐藏项。
2、currentRow
(类型:int
)
此属性保存当前项的行。
根据当前的选择模式,还可以选择行。
3、sortingEnabled
(类型:bool
)
此属性保存是否启用排序。
如果此属性为true,则对列表启用排序;如果该属性为false,则不启用排序。
默认值为false。
:
3、functions
3.1、访问属性相关 function
1、int count
() const
获取列表中的项数,包括任何隐藏项。
2、int currentRow
() const
当前项的行
如果未选择,则返回 -1
3、void setCurrentRow
(int row)
将当前行设置为指定的行
4、bool isSortingEnabled
() const
是否启用排序。
5、void setSortingEnabled
(bool enable)
设置是否启用排序。
3.2、公共槽
1、void clear
()
删除视图中的所有项和选择项。
3.3、Signal
1、void itemClicked
(QListWidgetItem *item)
当在小部件中的一个项目上单击鼠标按钮时(左键单击),该信号与指定的项目一起发出。
2、void itemPressed
(QListWidgetItem *item)
当在小部件中的一个项目上按下鼠标按钮时(左键 / 右键 单击),该信号与指定的项目一起发出。
3、void itemDoubleClicked
(QListWidgetItem *item)
当在小部件中的一个项目上双击鼠标按钮时,该信号与指定的项目一起发出。。
3.4、其他方法
1、void addItem
(const QString &label)
在列表小部件的末尾插入带有文本标签的项。
无法设置图标
2、void addItems
(const QStringList &labels)
在列表小部件的末尾插入带有文本标签的多个项。
无法设置图标
3、void addItem
(QListWidgetItem *item)
在列表小部件的末尾插入项目。
通过item.setIcon(QIcon(QPixmap( icopath )))
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
listWidget = QListWidget(self)
item = QListWidgetItem(mp3filename)
item.setIcon(QIcon(QPixmap(r"E:\Private_Python\音乐播放器\图片\播放.ico")))
listWidget.addItem(item)
4、void closePersistentEditor
(QListWidgetItem *item)
关闭指定项的持久编辑器。
5、void openPersistentEditor
(QListWidgetItem *item)
打开给定项的编辑器
编辑器在编辑后保持打开状态。
6、bool isPersistentEditorOpen
(QListWidgetItem *item) const
关闭指定项的持久编辑器。
7、QListWidgetItem * currentItem
() const
返回当前项。
8、void setCurrentItem
(QListWidgetItem *item)
将当前项设置为item。
除非选择模式为NoSelection,否则项目也会被选中。
9、QList<QListWidgetItem *> findItems
(const QString &text, Qt::MatchFlags flags) const
使用给定标志查找具有与字符串文本匹配的文本的项。
10、void insertItem
(int row, const QString &label)
在列表小部件中按row指定的位置插入带有文本标签的项
11、void insertItems
(int row, const QStringList &labels)
在列表小部件中按row指定的位置插入带有文本标签的多个项。
12、QListWidgetItem * takeItem
(int row)
从列表小部件的给定行中删除并返回项目;否则返回nullptr。
从列表小部件中删除的项目将不会由Qt管理,并且需要手动删除。
currentRow = ui.listWidget.currentRow()
item = ui.listWidget.takeItem(currentRow)
del item