Qt中用代码实现一个菜单栏
#include "mainwindow.h"
#include <QDebug>
#include <QMenuBar> //添加菜单栏
#include <QMenu> //添加菜单
#include <QAction> //添加动作
#include <QToolBar> //添加工具栏
#include <QStatusBar> //添加状态栏
#include <QLabel> //添加标签
#include <QTextEdit> //核心控件
#include <QDockWidget> //浮动窗口
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
setWindowTitle("YiWa");
resize(700,500);
//菜单栏
QMenuBar *mbar = menuBar(); //菜单栏
QMenu *pfile = mbar->addMenu("文件"); //菜单
QMenu *pfile2 = mbar->addMenu("编辑"); //菜单
QMenu *pfile3 = mbar->addMenu("构建"); //菜单
QAction *pnew = pfile->addAction("新建"); //添加菜单项,添加动作
QAction *pnew1 = pfile->addAction("打开"); //添加菜单项,添加动作
QAction *pnew2_1 = pfile2->addAction("Undo"); //添加菜单项,添加动作
//菜单栏不用new,系统已经写好,直接调用
/*
* pfile->addAction("打开"); //后面不用"打开"按钮时,可以这样定义,更加方便
*/
//工具栏
QToolBar *tbar = addToolBar("tbar"); //工具栏
tbar->addAction(pnew); //工具栏添加快捷键
tbar->addAction(pnew1); //工具栏添加快捷键
b = new QPushButton(this); //工具栏添加控件
tbar->addWidget(b);
b->setText("按键");
connect(b,&QPushButton::clicked,
[=]()
{
b->setText("^_^");
qDebug()<<"按键按下";
}
);
//工具栏就是菜单栏的快捷方式
//添加工具栏时,直接在菜单栏里面找变量即可,不用自己定义
//控件是指针类型,因为引用的addwidget(*Widget)
//状态栏
QStatusBar *sbar = statusBar(); //添加状态栏
QLabel *lab = new QLabel(this); //状态栏标签
lab->setText("问题"); //标签内容
sbar->addWidget(lab);//标签从左开始
sbar->addWidget(new QLabel("输出",this));
sbar->addPermanentWidget(new QLabel("收起",this));//标签从右开始
//状态栏就是底部的提示
//QLabel 添加标签有两种方式 1)lab->setText("问题"); sbar->addWidget(lab);
// 2)sbar->addWidget(new QLabel("输出",this));
//状态栏可以从左开始,也可以从右开始
//核心控件
QTextEdit *edit = new QTextEdit(this);
setCentralWidget(edit); //设置一个核心控件
//核心控件就是文本编辑区域
//浮动窗口
QDockWidget *dock = new QDockWidget(this);
dock->setWindowTitle("项目");
addDockWidget(Qt::LeftDockWidgetArea,dock); //浮动窗口初始位置
}
MainWindow::~MainWindow()
{
}
/*
* 1)tbar->addAction() 是添加快捷键,可以是文字,也可以是变量
* ->addWidget() 添加动作,里面是变量
* 2)菜单栏,工具栏,状态栏系统将函数已经定义好,所以可以直接用
* QLabel QTextEdit...需要自己分配控件
*
*
*
*/
运行结果