如何获取所选项目QlistWidget pyqt

时间:2017-11-09 11:04:30

标签: python pyqt5

当用户选择QlistWidget中的项目然后单击按钮以获取此元素时,我想获取所选元素

3 个答案:

答案 0 :(得分:1)

您可以使用来自QListWidget类的itemActivated信号并将其绑定到您的某些方法。

yourQListWidget.itemActivated.connect(itemActivated_event)

def itemActivated_event(item)
    print(item.text())

现在,每次用户点击QListWidget中的某个项目时,都会打印此项目内的文字。

答案 1 :(得分:1)

试试这个:

from PyQt5.QtWidgets import (QWidget, QListWidget, QVBoxLayout, QApplication)
import sys

class Example(QWidget):

    def __init__(self):
        super().__init__()


        self.l = QListWidget()
        for n in range(10):
            self.l.addItem(str(n))

        self.l.itemSelectionChanged.connect(self.selectionChanged)

        vbox = QVBoxLayout()
        vbox.addWidget(self.l)

        self.setLayout(vbox)
        self.setGeometry(300, 300, 300, 300)
        self.show()

    def selectionChanged(self):
        print("Selected items: ", self.l.selectedItems())


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

使用这种方法,您将拥有所有项目,通过单击,使用键盘箭头或在其上拖动鼠标进行选择,打印出来。

答案 2 :(得分:1)

将方法绑定到来自 QListWidget 的 itemClicked 信号似乎也有效:

yourQListWidget.itemClicked.connect(itemClicked_event)

def itemClicked_event(item):
    print(item.text())

对我来说,itemClicked 信号在单击项目时起作用,而 itemActivated 在双击时起作用。