PyQt5 QListWidget – 设置选择行为

  • Post category:Python

下面是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设置选择行为的详细教程,希望能帮助您更好地掌握这个知识点。