PyQt4: определить щелчок по пустой области QTreeWidget - PullRequest
1 голос
/ 15 декабря 2011

Я создал древовидную структуру с QTreeWidget, и она хорошо работает.Но у меня есть проблема с этим.Обычно, с древовидной структурой, если я хочу отменить выбор, я нажимаю на пустую область дерева.QTreeWidget не поддерживает эту работу. (Или я не могу найти подсказку?)

Подклассификация?или что-то еще может решить проблему?определение нажатия на пустую область кажется ключом решения, но я не могу найти СИГНАЛ или что-то еще.

Спасибо за любую помощь:)

1 Ответ

2 голосов
/ 15 декабря 2011

Подкласс, вероятно, является самым простым выбором (хотя то же самое может быть достигнуто с помощью фильтра событий).

Этот пример кода очистит выбор при нажатии на пустую область или при нажатииКлавиша Escape, когда виджет дерева имеет фокус клавиатуры:

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)
...