PyQt5中如何获取Listwidget点击项的文本?

How to get the text of the clicked item of Listwidget in PyQt5?

我正在寻找一种方法来获取 listWidget 上被单击元素的文本/名称。

这是我的方法:

        # call lamp clicked event
    self.listWidget_lamps.itemClicked.connect(self.lamp_clicked)

    # call group clicked event


def lamp_clicked(self):
    self.lamp_on = True
    self.group_on = False
    lamp = Lamp(self.item.text())
    print("lamp" + self.item.text() + "got clicked")

但它总是崩溃并给我这个错误:

lamp = Lamp(self.item.text())
AttributeError: 'MainWindow' object has no attribute 'item'

有人能告诉我我做错了什么吗?

您的插槽 lamp_clicked 的签名有误。查看 QListWidget::itemClicked 并注意信号有一个参数,但您的槽没有参数。

def lamp_clicked(self, clickedItem):
    self.lamp_on = True
    self.group_on = False
    lamp = Lamp(clickedItem.text())
    print("lamp" + clickedItem.text() + "got clicked")

应该可以解决问题。