我用QTreeWidget创建了一个树结构,效果很好。 但是,我有一个问题。 通常,如果我想取消选择所有树结构,我点击树区域的空白区域。 QTreeWidget不支持这项工作。(或者我找不到提示?)
子类?或其他什么可以解决问题? 确定点击空白区域似乎是解决方案的关键,但我找不到SIGNAL或其他任何东西。
感谢您的帮助:)
答案 0 :(得分:2)
子类可能是最简单的选择(尽管使用事件过滤器可以实现同样的目的)。
此示例代码将在单击空白区域时清除选择,或者在树窗口小部件具有键盘焦点时按Esc键:
class TreeWidget(QTreeWidget):
...
def keyPressEvent(self, event):
if (event.key() == Qt.Key_Escape and
event.modifiers() == Qt.NoModifier):
self.clearSelection()
else:
QTreeWidget.keyPressEvent(self, event)
def mousePressEvent(self, event):
if self.itemAt(event.pos()) is None:
self.clearSelection()
QTreeWidget.mousePressEvent(self, event)