首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt: QMouseEvent -如何获取小部件

Qt: QMouseEvent -如何获取小部件
EN

Stack Overflow用户
提问于 2014-06-17 00:46:35
回答 1查看 1.4K关注 0票数 1

我在我的程序中使用了QMouseEventQKeyEvents。我以编程方式制作各种小部件(QDockWidgetsQCustomPlots)。

我想使用一个单击和按键处理函数。但是,我正在努力获得实际被点击的小部件,这样我就可以在该小部件中执行某些操作。

有没有办法从ClickEvent中返回被点击的小部件的名称?

EN

回答 1

Stack Overflow用户

发布于 2014-06-17 00:58:25

您可以在mainWindow中实现eventFilter并侦听来自那里的小部件的事件:

代码语言:javascript
复制
bool MainWindow::eventFilter(QObject * obj, QEvent * event)
{

    if((myWidget *)obj == widget1 && event->type()==QEvent::KeyPress) 
    {

        int pressedKey = ((QKeyEvent*)event)->key();

        ...

    }
    else if((myWidget *)obj == widget2 && event->type()==QEvent::MouseButtonRelease)
    {

        if(((QMouseEvent*)event)->button() == Qt::LeftButton)
        {
            ...
        }
    }

    return false;
}

另外,不要忘记在mainWindow构造函数中为您的小部件安装事件过滤器:

代码语言:javascript
复制
widget1->installEventFilter(this);
widget2->installEventFilter(this);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24248489

复制
相关文章

相似问题

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