目錄
0、創建項目:
前面步驟一樣,到下圖基類換一下:
1、菜單欄
頭文件:
一些函數原型聲明:
void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget, Qt::Orientation orientation)
void addToolBar(QToolBar *toolbar)
QMenuBar *menuBar() const
QStatusBar *statusBar() const
打開mainWindow.cpp編輯
菜單可以分爲三步操作:
設定菜單欄,添加菜單,添加動作。其中自動 分配空間,返回指針。
resize(300,200);
//菜單欄
QMenuBar *mBar = menuBar();
//添加菜單
QMenu *pFile = mBar->addMenu("文件");
//添加菜單項,添加動作
QAction *pNew = pFile->addAction("退出");
connect(pNew, &QAction::triggered,
//Lambda 表達式
[=]()
{
qDebug() << "已退出";
}
);
pFile->addSeparator();//添加分割線
QAction *pOpen = pFile->addAction("打開");
顯示效果,截圖效果不完整:
2、工具欄
//工具欄,菜單欄的快捷方式
QToolBar *tBar = addToolBar("toolBar");
//工具欄添加快捷鍵
tBar->addAction(pNew);
3、狀態欄
QStatusBar *qSBar = statusBar();
QLabel *label = new QLabel(this);//分配空間,指定父對象
label->setText("Normal Text File");
qSBar->addWidget(label);
//直接添加,並指定父對象,默認從左到右
qSBar->addWidget(new QLabel("2",this));
//從右往左添加:
qSBar->addPermanentWidget(new QLabel("Coded by chen2511",this));
4、核心控件
setCentralWidget(textEdit);//只需要一個'QTextEdit'指針傳入,就可以創建一個文本框,可以有複製粘貼操作
5、浮動窗口
addDockWidget();//這裏有兩個構造函數,選擇帶兩個參數的,先隨便填上,這樣纔可以按F1查看
void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget)
第一個參數是位置,以上圖片是參數的枚舉類型;第二個參數是窗口指針。
也可以往窗口裏加東西,比如文本框
QDockWidget *dock = new QDockWidget(this);
addDockWidget(Qt::RightDockWidgetArea, dock);
//往浮動窗口裏添加文本編輯區
QTextEdit *textEdit1= new QTextEdit(this);
dock->setWidget(textEdit1);
窗口可以隨意拖放,菜單欄等窗口也可以。
附上完整代碼(只改變mainWindow.cpp)
#include "mainwindow.h"
//菜單欄頭文件
#include <QMenuBar>
#include <QMenu>
#include <QAction>
//打印信息的頭文件
#include <QDebug>
//工具欄
#include <QToolBar>
#include <QPushButton>
//狀態欄
#include <QStatusBar>
#include <QLabel>
//核心控件
#include <QTextEdit>
//浮動窗口
#include <QDockWidget>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
resize(300,200);
//菜單欄
QMenuBar *mBar = menuBar();
//添加菜單
QMenu *pFile = mBar->addMenu("文件");
//添加菜單項,添加動作
QAction *pNew = pFile->addAction("退出");
connect(pNew, &QAction::triggered,
//Lambda 表達式
[=]()
{
qDebug() << "已退出";
}
);
pFile->addSeparator();//添加分割線
QAction *popen = pFile->addAction("打開");
//工具欄,菜單欄的快捷方式
QToolBar *tBar = addToolBar("toolBar");
//工具欄添加快捷鍵
tBar->addAction(pNew);
QPushButton *b = new QPushButton(this);
b->setText("^-^");
//添加小控件
tBar->addWidget(b);
connect(b,&QPushButton::clicked,
[=]()
{
b->setText("123");
}
);
//狀態欄
QStatusBar *qSBar = statusBar();
QLabel *label = new QLabel(this);//分配空間,指定父對象
label->setText("Normal Text File");
qSBar->addWidget(label);
//直接添加,並指定父對象,默認從左到右
qSBar->addWidget(new QLabel("2",this));
//從右往左添加:
qSBar->addPermanentWidget(new QLabel("Coded by chen2511",this));
//核心控件
QTextEdit *textEdit = new QTextEdit(this);
setCentralWidget(textEdit);
//浮動窗口
QDockWidget *dock = new QDockWidget(this);
addDockWidget(Qt::RightDockWidgetArea, dock);
//往浮動窗口裏添加文本編輯區
QTextEdit *textEdit1= new QTextEdit(this);
dock->setWidget(textEdit1);
}
MainWindow::~MainWindow()
{
}