1
我用QTreeWidget制作了一个树形结构,它运行良好。 但是,我有一个问题。 一般情况下,如果我想取消选择所有的树结构,我点击树区的空白区域。 QTreeWidget不支持那项工作(或我找不到小费?)PyQt4:确定点击QTreeWidget的空白区域
子分类?还是别的什么都可以解决问题? 确定点击空白区域似乎是解决方案的关键,但我找不到信号或任何东西。
谢谢你的任何帮助:)
我用QTreeWidget制作了一个树形结构,它运行良好。 但是,我有一个问题。 一般情况下,如果我想取消选择所有的树结构,我点击树区的空白区域。 QTreeWidget不支持那项工作(或我找不到小费?)PyQt4:确定点击QTreeWidget的空白区域
子分类?还是别的什么都可以解决问题? 确定点击空白区域似乎是解决方案的关键,但我找不到信号或任何东西。
谢谢你的任何帮助:)
一个子类可能是最简单的选择(虽然同样的事情可能与事件过滤器实现)。
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)
谢谢你的建议是:在空白区域单击,或按下Esc键时,当树部件具有键盘焦点时
此示例代码将清除选择。它运作良好!但我修改上面的脚本有点... self.clearSelection()---> self.setCurrentItem(None) clearSelection方法显然取消选择小部件,但实际上TreeWidget有一个currentItem。所以,我没有选择任何东西。 – 2011-12-16 11:55:04