I am newbie to Qt and am currently playing about with Qt Creator and raw C++ code. I have managed to get some simple functionality working, including a menu and toolbar by a
serge_gubenco's answer will work, except when the window needs to be resized smaller and Qt tries to put the QToolButton itself in a popup menu. It may be unable do so. See http://doc.qt.io/archives/qt-4.7/qtoolbar.html.
The solution is to use a quick QWidgetAction, as below in a modified snippet.
QMenu *menu = new QMenu();
QAction *testAction = new QAction("test menu item", this);
menu->addAction(testAction);
QToolButton* toolButton = new QToolButton();
toolButton->setMenu(menu);
toolButton->setPopupMode(QToolButton::InstantPopup);
QWidgetAction* toolButtonAction = new QWidgetAction(this);
toolButtonAction->setDefaultWidget(toolButton);
toolBar->addAction(toolButtonAction);
It seems QToolButton
already has some sort of submenu, which is set with QToolButton::setPopupMode(ToolButtonPopupMode mode)
. If I've got you right, that would be a place to start: http://doc.qt.io/archives/qt-4.7/qtoolbutton.html#ToolButtonPopupMode-enum
I believe QToolButton widget should work fine for what you're trying to do, see if and example below would work for you:
QMenu *menu = new QMenu();
QAction *testAction = new QAction("test menu item", this);
menu->addAction(testAction);
QToolButton* toolButton = new QToolButton();
toolButton->setMenu(menu);
toolButton->setPopupMode(QToolButton::InstantPopup);
toolBar->addWidget(toolButton);
hope this helps, regards