[英]How to trigger an event when a QListWidget has contents added or removed
[英]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.