Qt 学习第八天:菜单栏、工具栏、状态栏、模态和非模态对话框创建

首先先创建QMainwindow文件

以下代码全在MainWindow.cpp下

1. 创建菜单栏

cpp 复制代码
    //创建菜单栏
    QMenuBar *menu = menuBar();
    //创建菜单
    QMenu *fileMenu = menu->addMenu("文件");
    QMenu *editMenu = menu->addMenu("编辑");
    //创建文件中菜单项
    QAction *createPro = fileMenu->addAction("新建项目");
    fileMenu->addSeparator(); //加分割线
    QAction *openPro = fileMenu->addAction("打开项目");

2. 创建工具栏

cpp 复制代码
    //工具栏
    QToolBar *toolbar = new QToolBar(this);
    //工具栏靠左侧
    addToolBar(Qt::LeftToolBarArea, toolbar);
    //添加快捷键
    toolbar->addAction(createPro);
    toolbar->addAction(openPro);

3. 创建状态栏

cpp 复制代码
    //状态栏创建
    QStatusBar *statusBar = new QStatusBar(this);
    setStatusBar(statusBar);
    //放标签
    QLabel *label = new QLabel("状态栏");
    //标签放入状态栏左侧
    statusBar->addWidget(label);
    QLabel *label2 = new QLabel("右侧状态栏");
    //标签放入状态栏右侧
    statusBar->addPermanentWidget(label2);

【运行结果】

4. 模态和非模态对话框创建

模态对话框:

cpp 复制代码
    //点击新建按钮弹出对话框
    connect(createPro, &QAction::triggered, this, [=]{
        //创建模态对话框:弹出该对话框后,若不关闭则不能对其它窗口进行操作。
        QDialog dialog1(this);
        dialog1.setWindowTitle("模态对话框");
        dialog1.resize(this->size()); //生成的对话框和窗口一样大
        dialog1.exec(); //阻塞
        qDebug() << "创建模态对话框" << Qt::endl;
    });

【运行结果】

非模态对话框

cpp 复制代码
    connect(createPro, &QAction::triggered, this, [=]{
        //创建非模态对话框:在不关闭该对话框的情况下可以对其它窗口进行操作。
        QDialog *dialog2 = new QDialog(this);
        dialog2->setWindowTitle("非模态对话框");
        dialog2->resize(this->size()); //生成的对话框和窗口一样大
        dialog2->show(); //show函数
        dialog2->setAttribute(Qt::WA_DeleteOnClose);
        qDebug() << "创建非模态对话框" << Qt::endl;
    });

【运行结果】

补充知识点:

英语部分后面补吧

相关推荐
半路程序员14 小时前
Go语言学习(四)
开发语言·学习·golang
青岛少儿编程-王老师14 小时前
CCF编程能力等级认证GESP—C++5级—20250927
java·数据结构·c++
老歌老听老掉牙14 小时前
基于 PyQt5 实现刀具类型选择界面的设计与交互逻辑
python·qt·交互
蒙奇D索大14 小时前
【C语言加油站】C语言文件操作详解:从“流”的概念到文件的打开与关闭
c语言·开发语言·笔记·学习·改行学it
数据库生产实战15 小时前
Oracle LOB使用入门和简单使用,提供学习用的测试用例!
数据库·学习·oracle
爱喝水的鱼丶15 小时前
SAP-ABAP:SAP中的用户确认对话框:深入理解与实践POPUP_TO_CONFIRM
运维·开发语言·学习·sap·abap
你的冰西瓜15 小时前
C++动态规划入门指南——助力CSP竞赛夺冠
c++·动态规划
lingggggaaaa15 小时前
小迪安全学习笔记(一百零二讲)—— 漏扫项目篇&PoC开发&Yaml语法&插件一键生成&匹配结果&交互提取
笔记·学习·安全·网络安全·交互
里昆15 小时前
【COMSOL】结构力学仿真(压缩弹性体)案例心得
学习
肥肠可耐的西西公主17 小时前
后端(JavaWeb)学习笔记(CLASS 2):SpringBootWeb入门
笔记·学习