📅  最后修改于: 2023-12-03 15:18:49.057000             🧑  作者: Mango
在PyQt5中,通过QListWidget控件,用户可以选择一行或多行,以执行一些特定的任务。在本文中,我们将学习如何设置PyQt5 QListWidget控件的选择行为。
QListWidget控件允许开发者设置多种选择模式:
要设置单行选择模式,开发者需要使用setSelectionMode
方法,并将QAbstractItemView.SingleSelection
作为参数传递。
list_widget.setSelectionMode(QAbstractItemView.SingleSelection)
要设置多行选择模式,开发者需要使用setSelectionMode
方法,并将QAbstractItemView.MultiSelection
作为参数传递。
list_widget.setSelectionMode(QAbstractItemView.MultiSelection)
要设置扩展选择模式,开发者需要使用setSelectionMode
方法,并将QAbstractItemView.ExtendedSelection
作为参数传递。
list_widget.setSelectionMode(QAbstractItemView.ExtendedSelection)
开发者也可以设置选择行为,该行为决定了在选择行时,哪些部分应该被高亮显示。
要设置只高亮项目名称,开发者需要使用setSelectionBehavior
方法,并将QAbstractItemView.SelectItems
作为参数传递。
list_widget.setSelectionBehavior(QAbstractItemView.SelectItems)
要设置高亮整行,开发者需要使用setSelectionBehavior
方法,并将QAbstractItemView.SelectRows
作为参数传递。
list_widget.setSelectionBehavior(QAbstractItemView.SelectRows)
import sys
from PyQt5.QtWidgets import QApplication, QListWidget, QListWidgetItem, QAbstractItemView
class DemoList(QListWidget):
def __init__(self):
super().__init__()
self.resize(200, 200)
self.itemSelectionChanged.connect(self.print_selected)
# 添加项目
for i in range(5):
text = 'Item {}'.format(i)
item = QListWidgetItem(text, self)
item.setCheckState(False)
# 只高亮项目名称
self.setSelectionBehavior(QAbstractItemView.SelectItems)
# 多行选择模式
self.setSelectionMode(QAbstractItemView.MultiSelection)
def print_selected(self):
selection = [item.text() for item in self.selectedItems()]
print(selection)
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = DemoList()
demo.show()
sys.exit(app.exec_())
该代码创建了一个QListWidget,并设置了多行选择模式和只高亮项目名称的选择行为。print_selected
方法会在选择行发生变化时打印出选择的项目名称。