目录
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()
{
}