qt 在点击菜单下的动作之后获取该菜单的名称
生活随笔
收集整理的這篇文章主要介紹了
qt 在点击菜单下的动作之后获取该菜单的名称
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- qt 在點擊菜單下的動作之后獲取該菜單的名稱
- 問題:
- 解決過程:
qt 在點擊菜單下的動作之后獲取該菜單的名稱
問題:
QMenu 類下有4個信號:
void aboutToHide()
void aboutToShow()
void hovered(QAction *action)
void triggered(QAction *action)
關聯信號 triggered(QAction *action) 后,要查詢 該action 對應的菜單,應該如何操作呢?
解決過程:
1、首先關聯信號和槽函數
connect(childMenu,SIGNAL(triggered(QAction *)),this,SLOT(onchildMenu_Triggered(QAction *)));手冊中有提到menu()函數可以獲取菜單項,于是 槽函數的內容中添加:
qDebug()<<“the action slot is here!”+_action->menu()->title();
來調試,具體如下:
void NavigationButton:: onchildMenu_Triggered(QAction *_action) {qDebug()<<"the action slot is here!"+_action->text();qDebug()<<"the action slot is here!"+_action->menu()->title();}發現調試出錯!!!!!!
于是,另找途徑
2、通過獲取發送者的指針,進而得到菜單名稱
改寫槽函數如下:
void NavigationButton:: onchildMenu_Triggered(QAction *_action) {qDebug()<<"the action slot is here!"+_action->text();//獲取發送者指針QMenu *childMenu=qobject_cast<QMenu *>(sender());qDebug()<<"childMenu->objectName()=="<<childMenu->title();}調試OK!!!!
總結
以上是生活随笔為你收集整理的qt 在点击菜单下的动作之后获取该菜单的名称的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QT QTreeWidget 行切换时改
- 下一篇: 期待的程序员的生活并非你想象的那么简单!