1
我在我的程序中使用QMouseEvent
和QKeyEvents
。我以編程方式製作各種小部件(QDockWidgets
和QCustomPlots
)。Qt:QMouseEvent - 如何獲取小部件
我想使用單擊和按鍵處理函數。但是,我正在努力獲得實際被點擊的小部件,以便我可以在該小部件中執行某些操作。
有沒有辦法從ClickEvent
返回被點擊的小部件的名稱?
我在我的程序中使用QMouseEvent
和QKeyEvents
。我以編程方式製作各種小部件(QDockWidgets
和QCustomPlots
)。Qt:QMouseEvent - 如何獲取小部件
我想使用單擊和按鍵處理函數。但是,我正在努力獲得實際被點擊的小部件,以便我可以在該小部件中執行某些操作。
有沒有辦法從ClickEvent
返回被點擊的小部件的名稱?
您可以在您的主窗口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;
}
也不要忘記安裝事件過濾器在主窗口構造你的widget:
widget1->installEventFilter(this);
widget2->installEventFilter(this);
由於這些事件被傳遞給特定的對象,你已經知道什麼小部件正在接收它們。否則,我真的不明白你想要解決什麼問題。 –