首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >qt eventfilter for qtreeview不工作吗?

qt eventfilter for qtreeview不工作吗?
EN

Stack Overflow用户
提问于 2012-02-14 04:42:24
回答 1查看 2.2K关注 0票数 1

我希望在选择qtreeview的同时按enter键时发生“事件”。因为我不喜欢创建qtreeview的子类(对设计者来说更容易),所以我尝试安装了一个事件过滤器。然而,这似乎不起作用:

这个类只包含一个公共函数:

代码语言:javascript
复制
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;
    }

}

添加的事件如下所示:

代码语言:javascript
复制
ui.InputTreeView->installEventFilter(InputTreeKeyboardEater.get());

其中ui.InputTreeView是我希望在按enter时执行的树形视图,InputTreeKeyboardEater是指向InputTreeEventHandler对象的(共享)指针

当在上面的函数开始处放置断点时,它显示整个事件处理程序甚至都没有被调用--我能做错什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-14 04:47:38

参见here--QObject::eventFilter不是const,这可以解释您的问题。InputTreeView希望调用一个非常量版本,但该版本并不存在。此外,eventFilter是受保护的,而不是公开的,尽管我认为这并不重要。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9267706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档