繁体   English   中英

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

[英]PyQt - trigger an event when nothing is selected in a QListWidget?

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

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

QListWidget.itemClicked.connect(self.item_click)

当什么都没有选择时,会有类似的东西吗? (或者换句话说,QListWidget是清除的)

谢谢!

通常,您将连接到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()

但是您的问题中有一部分是模棱两可的。 为什么想知道什么时候“未选中”? 将新商品添加到列表时该怎么办? 由于列表已更改,它是否应该触发您的“未选择”功能,但是仍然没有选择任何内容?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM