我希望在选择 qtreeview 时按下回车键时发生“事件”。因为我不想继承 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
按Enter键时我希望执行的树视图在哪里,以及InputTreeKeyboardEater
指向对象的(共享)指针InputTreeEventHandler
在上面的函数开始处放置断点时,它显示整个事件处理程序甚至没有被调用 - 我做错了什么?