qt 手動設定住主視窗的選單欄、工具欄、狀態列
阿新 • • 發佈:2022-05-17
#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> classmainwindow : 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); }