Qt creator添加菜单栏编译没有报错,但是程序窗口中不显示已经建立的菜单栏,尝试了不同的办法,想知道如果是编译器版本的问题的话应该如何配置,如果是代码的问题应该怎么改?
//mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
using namespace std;
void CreatMenu();
storage::storage(QWidget *parent) : QMainWindow(parent)
{
setWindowTitle("StoM-yiban");//设置窗口标题
this->resize(QSize(1800,900));//设置窗口大小
}
void storage::CreatMenu()
{
QMenuBar* pMenuBar = ui->menubar;
QMenu *fileMenu = new QMenu("文件");//添加文件菜单项
QAction *pActionFile = new QAction("submenu");
fileMenu->addAction(pActionFile);
pMenuBar->addMenu(fileMenu);
QMenu *editMenu = new QMenu("文件");//添加编辑菜单项
QAction *pActionEdit = new QAction("submenu");
fileMenu->addAction(pActionEdit);
pMenuBar->addMenu(editMenu);
QMenu *checkMenu = new QMenu("文件");//添加检查菜单项
QAction *pActionCheck = new QAction("submenu");
fileMenu->addAction(pActionCheck);
pMenuBar->addMenu(checkMenu);
QMenu *helpMenu = new QMenu("文件");//添加帮助菜单项
QAction *pActionHelp = new QAction("submenu");
fileMenu->addAction(pActionHelp);
pMenuBar->addMenu(helpMenu);
}
storage::~storage()
{
}
//main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
storage w;
w.show();
return a.exec();
}
//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMenuBar>
#include <QMenu>
#include <QWidget>
#include <QAction>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class storage : public QMainWindow
{
Q_OBJECT
public:
storage(QWidget *parent = nullptr);
~storage();
private:
void CreatMenu();
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H