我在我的程序中使用了QMouseEvent和QKeyEvents。我以编程方式制作各种小部件(QDockWidgets和QCustomPlots)。
我想使用一个单击和按键处理函数。但是,我正在努力获得实际被点击的小部件,这样我就可以在该小部件中执行某些操作。
有没有办法从ClickEvent中返回被点击的小部件的名称?
发布于 2014-06-17 00:58:25
您可以在mainWindow中实现eventFilter并侦听来自那里的小部件的事件:
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构造函数中为您的小部件安装事件过滤器:
widget1->installEventFilter(this);
widget2->installEventFilter(this);https://stackoverflow.com/questions/24248489
复制相似问题