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