如何将QMenuBar添加到QWizardPage?
How to add QMenuBar to QWizardPage?
我正在尝试将 QMenuBar 添加到 QWizardPage
QMenuBar *menuBar = new QMenuBar;
menuBar->setNativeMenuBar(false);
QMenu *helpMenu = new QMenu;
QAction *helpAction = new QAction;
helpMenu->addAction(helpAction);
menuBar->addMenu(helpMenu);
layout->addWidget(menuBar);
//Other widgets
setLayout(layout);
但是我看不到菜单栏。
基本上我想添加一个带有 "About product" 项的 "Help" 菜单来显示我们通常在许多应用程序中看到的产品版本和许可信息。我在 Windows 10 使用 QT 5.13.2
解决方案是使用 QMainWindow,在其中设置 QMenuBar 并将 QWizard 用作 centralWidget:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMainWindow w;
// menubar
QMenuBar * menuBar = w.menuBar();
QMenu *helpmenu = menuBar->addMenu("Help");
QAction *aboutaction = helpmenu->addAction("About product");
QObject::connect(aboutaction, &QAction::triggered, [&w](){
QMessageBox::information(&w, "About", "About");
});
QWizard *wizard = new QWizard;
// add pages
wizard->addPage(new QWizardPage);
wizard->addPage(new QWizardPage);
w.setCentralWidget(wizard);
w.show();
return a.exec();
}
我正在尝试将 QMenuBar 添加到 QWizardPage
QMenuBar *menuBar = new QMenuBar;
menuBar->setNativeMenuBar(false);
QMenu *helpMenu = new QMenu;
QAction *helpAction = new QAction;
helpMenu->addAction(helpAction);
menuBar->addMenu(helpMenu);
layout->addWidget(menuBar);
//Other widgets
setLayout(layout);
但是我看不到菜单栏。
基本上我想添加一个带有 "About product" 项的 "Help" 菜单来显示我们通常在许多应用程序中看到的产品版本和许可信息。我在 Windows 10 使用 QT 5.13.2
解决方案是使用 QMainWindow,在其中设置 QMenuBar 并将 QWizard 用作 centralWidget:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMainWindow w;
// menubar
QMenuBar * menuBar = w.menuBar();
QMenu *helpmenu = menuBar->addMenu("Help");
QAction *aboutaction = helpmenu->addAction("About product");
QObject::connect(aboutaction, &QAction::triggered, [&w](){
QMessageBox::information(&w, "About", "About");
});
QWizard *wizard = new QWizard;
// add pages
wizard->addPage(new QWizardPage);
wizard->addPage(new QWizardPage);
w.setCentralWidget(wizard);
w.show();
return a.exec();
}