下面是Python中PyQt5 QListWidget-设置选择行为的完整使用攻略:
一、前言
在PyQt5中,QListWidget是一种常见的UI控件,用于展示列表项。当用户在QListWidget中选择某一项时,我们可以设置选择行为(SelectionBehavior)来定义用户可以选择一行还是多行,以及用户选择行时的反馈方式。下面我们将详细解释如何利用PyQt5中的QListWidget进行选择。
二、设置选择行为
1. 定义QListWidget
在使用QListWidget设置选择行为之前,需要先定义一个QListWidget类,代码如下:
import sys
from PyQt5.QtWidgets import QApplication, QListWidget, QListWidgetItem, QWidget
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.listWidget = QListWidget(self)
self.listWidget.setGeometry(10, 10, 160, 120)
self.setGeometry(300, 300, 280, 170)
self.setWindowTitle('QListWidget')
self.show()
2. 设置选择行为为单选
在列表中单选一个项的示例代码如下:
self.listWidget.setSelectionMode(QListWidget.SingleSelection)
3. 设置选择行为为多选
在列表中多选多个项的示例代码如下:
self.listWidget.setSelectionMode(QListWidget.MultiSelection)
4. 设置选择行为为扩展模式
在列表中扩展模式下,可以选择多个项,但是只有按下Ctrl键时才会触发多选模式。示例代码如下:
self.listWidget.setSelectionMode(QListWidget.ExtendedSelection)
三、完整示例
下面是一个完整的示例,用来演示以上三种设置选择行为的方法。
import sys
from PyQt5.QtWidgets import QApplication, QListWidget, QListWidgetItem, QWidget
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.listWidget1 = QListWidget(self)
self.listWidget1.setGeometry(10, 10, 160, 40)
self.listWidget1.setSelectionMode(QListWidget.SingleSelection)
self.listWidget1.addItems(['Apple', 'Banana', 'Cherry'])
self.listWidget2 = QListWidget(self)
self.listWidget2.setGeometry(10, 60, 160, 60)
self.listWidget2.setSelectionMode(QListWidget.MultiSelection)
self.listWidget2.addItems(['Apple', 'Banana', 'Cherry'])
self.listWidget3 = QListWidget(self)
self.listWidget3.setGeometry(10, 130, 160, 60)
self.listWidget3.setSelectionMode(QListWidget.ExtendedSelection)
self.listWidget3.addItems(['Apple', 'Banana', 'Cherry'])
self.setGeometry(300, 300, 280, 220)
self.setWindowTitle('QListWidget')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
以上就是利用PyQt5中的QListWidget设置选择行为的详细教程,希望能帮助您更好地掌握这个知识点。