0
Q
Qt隱藏空子菜單
A
回答
1
很難說沒有看到你的代碼,但...我猜真正的問題不是隱藏空子菜單本身,而是隱藏與其子菜單相關聯的「標籤」文本在其父。爲此,您需要隱藏與子菜單關聯的QAction
,而不是簡單地隱藏子菜單。
下似乎做什麼(我覺得)你想...
void hide_the_empties (QMenu *menu)
{
if (!menu)
return;
/*
* The following statement is the one I think you need to
* add to your own aboutToShow implementation.
*/
menu->menuAction()->setVisible(!menu->isEmpty());
if (!menu->isEmpty()) {
for (auto action: menu->actions()) {
if (auto m = action->menu()) {
hide_the_empties(m);
}
}
}
}
測試了...
QMenu menu;
menu.addAction("First");
menu.addAction("Second");
/*
* Add empty submenu.
*/
auto *sm = menu.addMenu("Not empty if you can see this");
menu.addAction("Third");
QObject::connect(&menu, &QMenu::aboutToShow,
[&]()
{
hide_the_empties(&menu);
});
menu.exec(QCursor::pos());
/*
* Populate submenu.
*/
auto *a1 = sm->addAction("Sub action 1");
auto *a2 = sm->addAction("Sub action 2");
menu.exec(QCursor::pos());
/*
* Clear submenu again.
*/
sm->clear();
menu.exec(QCursor::pos());
相關問題
- 1. jQuery菜單 - 隱藏子菜單問題
- 2. Infragistics UltraWebMenu子菜單隱藏
- 3. 隱藏TinyNav子菜單
- 4. 隱藏/顯示子菜單
- 5. Bootstrap3子菜單隱藏onclick子項
- 6. jquery子菜單隱藏/顯示子菜單在單獨的div
- 7. jQuery - 隱藏主ul單擊子菜單
- 8. 隱藏空上下文菜單
- 9. jQueryUI菜單隱藏
- 10. 在導航上隱藏子菜單
- 11. 下拉菜單不隱藏子類別
- 12. 如何在QMenu中隱藏子菜單
- 13. Bootstrap子菜單隱藏後點擊
- 14. 在wordpress中顯示/隱藏子菜單
- 15. 子菜單隱藏在導航DIV
- 16. 顯示/隱藏wordpress子菜單
- 17. CSS/jquery顯示隱藏子菜單
- 18. 在標題後面隱藏子菜單
- 19. 頁面加載隱藏子菜單jquery
- 20. 子菜單被其他div隱藏
- 21. 在手機上隱藏Bootstrap子菜單
- 22. 離子,隱藏和從側面菜單
- 23. jQuery複雜隱藏顯示子菜單
- 24. CSS Drop Down子菜單不會隱藏
- 25. 溢出-y隱藏子菜單
- 26. TIWMenu和TIWRegion隱藏子菜單
- 27. 隱藏Eclipse菜單欄(自動隱藏)
- 28. 如何隱藏XAML菜單中菜單項左側的空間?
- 29. Qt5 OS X菜單欄空菜單項未隱藏
- 30. android可擴展菜單(隱藏/取消隱藏菜單)
我認爲這將是一個好主意,你要包括QMenu :: aboutToShow代碼你有。我想,在那個代碼中,你可以遍歷子菜單並隱藏那些空的。 – user2672165