PyQt - 在QListWidget中未选择任何内容时触发事件?

时间:2016-06-16 19:00:32

标签: python pyqt

我有一个QListWidget类型的对象,用户可以在其中选择0个或更多项。

如果未选择任何内容,我如何触发调用函数的事件? 我知道您可以使用以下方法检测点击特定项目:

QListWidget.itemClicked.connect(self.item_click)

当什么都没有被选中时,是否有类似的东西? (换句话说,QListWidget是清晰的)

谢谢!

1 个答案:

答案 0 :(得分:1)

通常,您将连接到itemSelectionChanged信号,然后检查是否选择了任何内容。

self.listwidget.itemSelectionChanged.connect(self.on_selection_changed)

def on_selection_changed(self):
    if not self.listwidget.selectedItems():
        # Do Stuff Here
        self.nothing_selected_function()

但这只会捕获选择 的事件,然后用户取消选择所有内容。如果没有选择任何内容,它将不会触发此信号(就像第一次构建列表一样,并且没有选择任何内容)。在这种情况下,您必须手动调用插槽。

self.listwidget = ...  # Code that builds and populates list widget
# Call this manually the first time.
self.on_selection_changed()

但你的部分问题含糊不清。 为什么你想知道什么时候“未被选中”?将新项目添加到列表时怎么办?它是否应该触发您的“未选择”功能,因为列表已更改,但仍然没有选择任何内容?