qt 手动设置住主窗口的菜单栏、工具栏、状态栏
#pragma once #include <QtWidgets/QMainWindow> #include "ui_mainwindow.h" #include <QMenuBar> //菜单栏 #include <QMenu> //菜单 #include <QAction> //菜单里面的选项 #include <QToolBar> //工具栏 #include <QToolButton> // 工具按钮 #include <QStatusBar> //状态栏 #include <QTextEdit> //多行文本框 #include <QLabel> class mainwindow : public QMainWindow { Q_OBJECT public: mainwindow(QWidget *parent = Q_NULLPTR); void init(); //初始化 void test(); //测试 调用 private: Ui::mainwindowClass ui; private: QMenuBar * mainMenuBar; QMenu * fileMenu; QAction * newaction; QAction * saveaction;c QAction * closeaction; QMenu * editMenu; QAction * copyaction; QMenu * buildMenu; QAction * startaction; QToolBar * mainToolBar; QToolButton * opentbtn; QStatusBar * minaStatusBar; QLabel * labe1; };
源文件
#include "mainwindow.h" mainwindow::mainwindow(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); init(); test(); } void mainwindow::init() { mainMenuBar = new QMenuBar; //创建菜单栏 mainToolBar = new QToolBar; //创建工具栏 minaStatusBar = new QStatusBar; //创建状态栏 } void mainwindow::test() { this->setMenuBar(mainMenuBar); //添加菜单栏 this->addToolBar(mainToolBar); //添加工具栏 this->setStatusBar(minaStatusBar); //添加状态栏 //菜单栏设置 fileMenu = mainMenuBar->addMenu(QString::fromLocal8Bit("文件")); //用这种方式创建菜单 newaction = new QAction(QString::fromLocal8Bit("新建文件")); //创建菜单项 closeaction = new QAction(QString::fromLocal8Bit("关闭文件")); saveaction = new QAction(QString::fromLocal8Bit("保存文件")); fileMenu->addAction(newaction); //添加菜单项 fileMenu->addAction(closeaction); fileMenu->addAction(saveaction); editMenu = mainMenuBar->addMenu(QString::fromLocal8Bit("编辑")); //用这种方式创建菜单 copyaction = new QAction(QString::fromLocal8Bit("拷贝文件")); editMenu->addAction(copyaction); //添加菜单选项 buildMenu = mainMenuBar->addMenu(QString::fromLocal8Bit("构建")); startaction = new QAction(QString::fromLocal8Bit("启动")); buildMenu->addAction(startaction); //添加菜单选项 //工具栏设置 opentbtn = new QToolButton; //mainToolBar opentbtn->setText(QString::fromLocal8Bit("点击")); mainToolBar->addWidget(opentbtn); //状态栏设置 labe1 = new QLabel; labe1->setText(QString::fromLocal8Bit("雀巢金牌速溶咖啡")); minaStatusBar->addWidget(labe1); }