单击QListWidgetItem时调用PyQt5函数

2024-09-27 04:19:15 发布

您现在位置:Python中文网/ 问答频道 /正文

如何确保仅在单击QListWidgetItem“Item 1”时调用do_something()函数,而不是在单击QListWidgetItem“Item 2”时调用该函数

在下面的实现中,每次单击其中一项时都会调用do_something()函数

from PyQt5.QtWidgets import QApplication, QWidget, QListWidget, QHBoxLayout, QListWidgetItem
import sys

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.list_widget = QListWidget()
        self.layout = QHBoxLayout()
        self.layout.addWidget(self.list_widget)
        self.list_widget.insertItem(1, QListWidgetItem("Item 1"))
        self.list_widget.insertItem(2, QListWidgetItem("Item 2"))
        self.list_widget.itemClicked.connect(self.do_something)
        self.setLayout(self.layout)
        self.show()

    def do_something(self):
        print("It was clicked on item 1")


App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec())

Tags: 函数importselfsyswidgetitemdosomething
1条回答
网友
1楼 · 发布于 2024-09-27 04:19:15

解决方案是获取按下项的行,并验证其是否为0:

from PyQt5.QtCore import pyqtSlot

# ...

@pyqtSlot("QListWidgetItem*")
def do_something(self, item):
    if self.list_widget.row(item) == 0:
        print("It was clicked on item 1")

相关问题 更多 >

    热门问题