我有一个QListWidget类型的对象,用户可以在其中选择0个或更多项。
如果未选择任何内容,我如何触发调用函数的事件? 我知道您可以使用以下方法检测点击特定项目:
QListWidget.itemClicked.connect(self.item_click)
当什么都没有被选中时,是否有类似的东西? (换句话说,QListWidget是清晰的)
谢谢!
答案 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()
但你的部分问题含糊不清。 为什么你想知道什么时候“未被选中”?将新项目添加到列表时怎么办?它是否应该触发您的“未选择”功能,因为列表已更改,但仍然没有选择任何内容?