PyQt4 - 在QListView中按下Enter键
你好。
我有一个QListView(就是一种显示列表的控件),到目前为止我只知道怎么用它自带的信号。我找不到任何关于在列表中的某个项目上按下回车键(QStandardListItem)时的信号,也找不到任何键按下事件(keyPressedEvents)。
有没有办法把QListView和这样的事件连接起来呢?怎么做呢? :)
谢谢!
1 个回答
4
使用事件过滤器:比如在列表容器的设置界面中,做如下操作:
# 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
是与回车键绑定的逻辑事件。你可以用其他方法来捕捉这个事件,但我展示的这个方法应该能给你指明方向。