我们跟着一个例子的代码看着注释讲:
#include "mainwindow.h"
#include<QMenu>//菜单栏需要的头文件
#include<QMenuBar>//菜单栏需要的头文件
#include<QAction>//添加动作头文件
#include<QDebug>//输出函数的头文件
#include<QPushButton>
#include<QToolBar>//工具栏的头文件
#include<QStatusBar>//状态栏需要的头文件
#include<QLabel>//标签需要的头文件
#include<QDockWidget>//浮动栏需要
#include<QTextEdit>//核心控件需要的头文件
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
//菜单栏
resize(400,300);
QMenuBar *mBar=menuBar();//先创建一个总的菜单栏,相当于一个大的容器
//添加菜单
QMenu *pFile=mBar->addMenu("文件");//在这个大的容器里面添加小的菜单
QMenu *bShow=mBar->addMenu("构建");
//添加菜单项
QAction *pNew=pFile->addAction("新建文件或项目");//在菜单中添加菜单项
QAction *pBian=pFile->addAction("打开文件或项目");
QAction *pCreat=bShow->addAction("构建所有项目");
QAction *pDo=bShow->addAction("执行qmake");
connect(pNew,&QAction::triggered,//Lamba表达式,triggered是QAction中自带的信号,另外可以参考API
[=]()
{
qDebug()<<"新建文件";//点击会打印出文字
}
);
connect(pBian,&QAction::triggered,
[=]()
{
qDebug()<<"打开项目";
}
);
pFile->addSeparator();//添加分割线,修饰作用
//工具栏
QToolBar *tooBar=addToolBar("toolBar");//新建一个工具栏
//工具栏添加快捷键
tooBar->addAction(pNew);//在工具栏中添加新的快捷键
//下面是在工具栏中添加一个新的按钮的方法
QPushButton *bb=new QPushButton(this);
bb->setText("+__+");
tooBar->addWidget(bb);
//状态栏
QStatusBar *status=statusBar();//创建一个状态栏
QLabel *label=new QLabel(this);//创建一个标签
label->setText("Normal text file");//添加标签文字
status->addWidget(label);//将标签添加进状态栏
status->addWidget(new QLabel(" Chinese ",this));//这是添加进标签的另一种写法
status->addPermanentWidget(new QLabel("English",this));//这是从右往左加入标签
//核心控件
QTextEdit *edi=new QTextEdit(this);//创建一个新的文本框
setCentralWidget(edi);//插入核心控件
//浮动窗口
QDockWidget *dock=new QDockWidget(this);//创建一个浮动窗口
addDockWidget(Qt::RightDockWidgetArea,dock);//添加进去这个窗口,并且放在右边
QTextEdit *edi2=new QTextEdit(this);//创建一个文本栏
dock->setWidget(edi2);//将文本栏加入到浮动窗口中
}
MainWindow::~MainWindow()
{
}
补充一下,浮动窗口添加的时候:
addDockWidget(Qt::RightDockWidgetArea,dock)
里面的参数可以是:
效果: