我想添加子菜單到動態菜單項。我怎樣才能做到這一點?如何在Qt中動態添加菜單
我是這樣試過的, 我創建了一個Action和子菜單。然後我添加了子菜單來採取行動。 但是,我連接了「觸發」動作信號。如果我點擊的動作越來越崩潰..
我也處理的菜單,同樣它也越來越崩潰的「aboutToShow」信號,當我點擊的動作..
這裏是SAMPE代碼。
Submenu = new QMenu(this);
connect(Submenu, SIGNAL(aboutToShow()), this, SLOT(move()));
QAction *test = new QAction(tr("Selection"), this);
test ->setMenu(Submenu);
menubar()->addAction(test);
我想要得到的通知,子菜單顯示之前..
產生額外的信息:
認罪試試這個代碼,在主窗口的構造函數。
QAction *action = new QAction("Test",this);
QAction *dummyaction = new QAction("Testing",this);
QMenu *menu = new QMenu();
menu->addAction(dummyaction);
bool val= connect(menu, SIGNAL(aboutToShow()), this, SLOT(Move()));
val= connect(menu, SIGNAL(aboutToHide()), this, SLOT(Move()));
action->setMenu(menu);
this->menuBar()->addAction(action);
如果我這樣做,我可以看到一個子菜單項。但在這之前移動插槽應該叫,它沒有得到所謂的..甚至隱藏之前也相同的插槽應該叫..其不來..
我試過的連接返回值..其真正的只有...還等什麼是錯我的代碼..請說..
謝謝, 但我的問題是,我能夠添加子菜單的。我想動態改變的子菜單。有些時候我需要添加更多的子菜單中有一段時間少。在這種情況下,主菜單,其中有子就當用戶點擊,它應該發出「aboutToShow」信號,並得到連接到槽。但在運行時,如果我上的MainMenu點擊..應用程序崩潰 – Naruto 2010-05-06 13:19:29
所以,你想會在每次打開就是我理解你正確的時間重新填充菜單?你是否刪除move()函數中菜單的前一個動作? – VestniK 2010-05-06 14:05:16
編號: 我不想填充任何菜單...只需添加「附加信息」下面添加的代碼,並嘗試在主窗口的構造函數..看到的行爲..我不明白爲什麼「約」信號正在發射。你可以請檢查一次..是它的錯誤?或者我正在思念sme事件 – Naruto 2010-05-07 04:10:41