PyQt4 - 在QListView中输入按下的项目键

时间:2011-02-22 14:32:49

标签: python qt4 pyqt4

嘿。 我有一个QListView,到目前为止我只想知道如何使用已经给出的信号。当在列表中的项目(QStandardListItem)上按下回车键时,我找不到任何信号。似乎无法找到任何keyPressedEvents。

是否有可能将QListView“挂钩”到这样的事件?怎么样? :)

由于

1 个答案:

答案 0 :(得分:4)

使用事件过滤:例如在列表容器的setupUi中,执行

# 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键绑定的逻辑事件。您可以使用其他方式捕捉事件,但我所展示的内容应该指向正确的方向。