PyQt4 - клавиша Enter, нажатая на элемент в QListView - PullRequest
1 голос
/ 22 февраля 2011

Эй.У меня есть QListView, и до сих пор я только понял, как использовать сигналы, которые уже даны.Я не могу найти никаких сигналов, когда клавиша ввода была нажата на элементе в списке (QStandardListItem).Кажется, что не могу найти ни одного keyPressedEvents.

Возможно ли "подключить" QListView к такому событию?Как?:)

Спасибо

1 Ответ

4 голосов
/ 22 февраля 2011

Использовать фильтрацию событий: например, в списке настроек контейнера сделайте

# the self param passed to installEventFilter indicates the object which
# defines eventFilter(), see below:
self.list.installEventFilter(self)

и затем определите функцию API фильтра в этом контейнере:

def eventFilter(self, watched, event):
    if event.type() == QEvent.KeyPress and \
       event.matches(QKeySequence.InsertParagraphSeparator):
       i = self.list.currentRow()
       # process enter key on row i

Обратите внимание, что InsertParagraphSeparator - это логическое событие, связанное с клавишей Enter. Вы можете использовать альтернативные способы ловли события, но то, что я показал, должно указать вам правильное направление.

...