How to add a Menu in a QDialog window
fem_dev last edited by
My Qt application will be more than one single window, and each window will be your own drop down menus and toolbars.
I would like to know:
1- What is the best:
a) Create just one single
QMainWindowfor the main window and the others will be
b) Create multiple
QMainWindows, one for each window
2- If the
aresponse is better, how can I add these 2 things in a
- Drop Down menu...like File->Open
- Toolbar...with icons such new file, save, printer, etc...
There is nothing against using multiple mainwindows, however
they are not blocking as a Dialog would/could.
The user can at any time click on any open window.
So if that is ok, i would go with MainWindows.
If you want to go the Dialog way, you will have to insert some layouts to the dialog to keep both QMenu and QStatusbar where they normally are.
JonB last edited by JonB
Assuming you do want independent multiple windows, not dialogs. You can create multiple
QMainWindows, that just a style. When you say you want "each window will be your own drop down menus and toolbars", you can do that, but you may run out of screen space, and it can be difficult for the user to keep track of which windows he has open where.
Have you considered whether https://doc.qt.io/qt-5/qmdiarea.html would give what you are seeking neatly? Look at the picture in https://doc.qt.io/qt-5/qtwidgets-mainwindows-mdi-example.html. In MDI you have multiple independent windows, inside an enclosing scrollable frame, and they share a single menu/toolbar on that frame. Depending on which window is currently up-front/active, the menu/toolbar changes to offer the appropriate items in the menu/toolbar. I know MDI is a bit out-of-fashion these days, but for what you are seeking it may be just what you want?
fem_dev last edited by fem_dev
Thank you @mrjj ...I think that will be good to block user click in the MainWindow when the second window is enable. So
QDialogwill be better for my case.
I'm newer in Qt and I don't know how to add
QMenuin the layout. Should I do this in the Qt Creator Designer or by code?
Beyond the drop-down menu (File->Open, etc...) is possible to create a UI Toolbar at the top of the
QDialogwindow? With some icons like "New File", "Save", etc...?
How can I do that? Is there any examples?
I already tried this, but doesn't work:
QVBoxLayout *mainLayout = new QVBoxLayout(this); QToolBar *toolBar = new QToolBar(); mainLayout->addWidget(toolBar); QAction *action1 = new QAction("Add", toolBar); QAction *action2 = new QAction("Del", toolBar);
Thank you @JonB too.
Very interesting point! I will use that in the future projects.