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