1
我希望在选择qtreeview时按下Enter键时发生“事件”。因为我不希望子类qtreeview(更容易为设计师) - 我试图安装一个事件过滤器。然而,这似乎并没有工作:QT eventfilter for qtreeview无法正常工作?
类仅包含一个公共职能:
bool InputTreeEventHandler::eventFilter(QObject *obj, QEvent *event) const {
if (event->type() == QEvent::KeyPress) {
QKeyEvent *keyevent = dynamic_cast<QKeyEvent*>(event);
QTreeView* tree = dynamic_cast<QTreeView*>(obj);
if (keyevent->key() == Qt::Key_Enter) {
//code
}
} else {
return false;
}
}
并添加事件类似如下:
ui.InputTreeView->installEventFilter(InputTreeKeyboardEater.get());
哪里ui.InputTreeView
是我树状希望按下输入时动作,并且InputTreeKeyboardEater
a(共享)指向一个对象的指针InputTreeEventHandler
当把一个breakpoi nt在上面的函数启动时显示整个事件处理程序甚至没有被调用 - 我可能做错了什么?
谢谢,我一直对qt的常量正确性“缺乏”感到惊讶:/ – paul23 2012-02-13 20:53:09
@ paul23为什么eventfilter函数应该是const?实施者可能想要修改这个 - 而且这不应该需要演员... – 2013-06-04 12:35:10