概述
菜單欄,工具欄,狀態欄應用中經常見到,下圖解釋一目了然,實際開發中 兩種方式來實現,一種是使用純代碼QMenuBar,QToolBar,QStatusBar來設計開發,另一種使用Qt Designer通過拖拽的形式來實現,減少了大量的代碼,使用簡單。
菜單欄
1.新建項目UI基類選擇QMainWindow。
2.雙擊在這里輸入,可修改一級菜單的名稱。
3.動作編輯器里添加actionOpen,actionSave兩個動作
4.鼠標左鍵拖拽action到文件下的二級菜單即可,同時打開和保存之間可以添加分隔符
5.頭文件中添加槽
private slots: void OnOpenFile(); void OnSaveFile();
6.源文件實現槽函數
/************************************ @ Brief: 打開文件 @ Author: 紅燒肉 @ Created: 2019/04/22 @ Return: ************************************/ void MenuDialog::OnOpenFile() { QMessageBox::information(this, "提示", "點擊了打開Action", QMessageBox::Yes); } /************************************ @ Brief: 保存文件 @ Author: 紅燒肉 @ Created: 2019/04/22 @ Return: ************************************/ void MenuDialog::OnSaveFile() { QMessageBox::information(this, "提示", "點擊保存Action!", QMessageBox::Yes) }
7.構造函數里連接信號與槽
connect(ui.actionOpen, &QAction::triggered, this, &MenuDialog::OnOpenFile); connect(ui.actionSave, &QAction::triggered, this, &MenuDialog::OnSaveFile);
工具欄
菜單下方的區域就是用來存放工具欄。
添加工具欄更簡單,直接拖拽acitonOpen,actionSave到該區域即可
常用方法:
void setMovable(bool movable):設置工具欄區域是否可移動
void setAllowedAreas(Qt::ToolBarAreas areas):設置工具欄可移動的范圍
void setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle):設置工具欄按鈕的風格,如純圖標,文字,文字圖標都有等
狀態欄
常用方法
void addWidget(QWidget *widget, int stretch = 0):狀態欄左側添加一個widget。對widget的拉伸系數為0。
void addPermanentWidget(QWidget *widget, int stretch = 0):狀態欄右側添加一個widget。
void setSizeGripEnabled(bool):設置右下角拖動縮放的控制點。
void showMessage(const QString &message, int timeout = 0):留言顯示,過期時間為 timeout。
示例代碼:
statusBar()->addWidget(new QLabel("label1")); statusBar()->addWidget(new QLabel("label2")); statusBar()->addPermanentWidget(new QLabel("label3")); statusBar()->addPermanentWidget(new QLabel("label4")); statusBar()->showMessage("留言", 5000); statusBar()->setSizeGripEnabled(false); //不顯示右下角拖放控制點 statusBar()->setStyleSheet(QString("QStatusBar::item{border: 0px}")); // QSS不顯示label的邊框