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

本文详细介绍了如何使用Qt创建菜单栏和工具栏,包括菜单的添加、动作的实现及与工具栏的联动。通过具体代码展示了菜单项、快捷键的设置以及状态栏和核心控件的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值