【Qt学习】---- 实战|菜单栏

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...需要自己分配控件
 *
 *
 *
 */

运行结果
在这里插入图片描述

发布了12 篇原创文章 · 获赞 1 · 访问量 373

猜你喜欢

转载自blog.csdn.net/wyifan_/article/details/104665171
今日推荐