当前位置: 首页 > article >正文

Qt中 QWidget 和 QMainWindow 区别

QWidget 用来构建简单窗口

QMainWindow 用来构建更复杂的窗口,QMainWindow 继承自QWidget,在QWidget 的基础上提供了菜单栏、工具栏、状态栏等功能

  • 菜单栏(QMenuBar
  • 工具栏(QToolBar
  • 状态栏(QStatusBar
  • 中央窗口区域(setCentralWidget()

#include <QAction>
#include <QApplication>
#include <QMainWindow>
#include <QMenuBar>
#include <QMessageBox>

class MyWindow : public QMainWindow {
public:
    MyWindow()
    {
        // 创建菜单栏
        QMenuBar* menuBar = this->menuBar();

        // 创建菜单
        QMenu* fileMenu = menuBar->addMenu("File");

        // 创建菜单项
        QAction* newAction = new QAction("New", this);
        QAction* openAction = new QAction("Open", this);
        QAction* exitAction = new QAction("Exit", this);

        // 将菜单项添加到菜单中
        fileMenu->addAction(newAction);
        fileMenu->addAction(openAction);
        fileMenu->addSeparator(); // 添加分隔符
        fileMenu->addAction(exitAction);

        // 连接信号和槽
        connect(newAction, &QAction::triggered, this, &MyWindow::newFile);
        connect(openAction, &QAction::triggered, this, &MyWindow::openFile);
        connect(exitAction, &QAction::triggered, this, &MyWindow::exitApp);
    }

private:
    void newFile()
    {
        QMessageBox::information(this, "New File", "New file action triggered!");
    }

    void openFile()
    {
        QMessageBox::information(this, "Open File", "Open file action triggered!");
    }

    void exitApp()
    {
        QApplication::quit();
    }
};

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    MyWindow window;
    window.resize(800, 600);
    window.show();

    return app.exec();
}


http://www.kler.cn/a/389421.html

相关文章:

  • linux 下查看程序启动的目录
  • vue el-date-picker 日期选择器禁用失效问题
  • Go开发指南-Gin与Web开发
  • arkUI:遍历数据数组动态渲染(forEach)
  • 将python下载的依赖包传到没网的服务器
  • Android OpenGL ES详解——纹理:纹理过滤GL_NEAREST和GL_LINEAR的区别
  • YoloV8改进策略:注意力改进|EPSANet,卷积神经网络上的高效金字塔挤压注意力块|即插即用|代码+改进方法
  • python+pptx:(二)添加图片、表格、形状、模版渲染
  • 信息安全数学基础(48)椭圆曲线
  • 工具收集 - 进程资源管理器、进程监视器
  • Kafka高频面试题详解
  • 010_SSH_Sqlserver多媒体技术与应用课程网(学习资料+前台考试)_lwplus87
  • 满200减30,怎么样用python计算凑单正好满足要求呢?
  • 【flask开启进程,前端内容图片化并转pdf-会议签到补充】
  • 如何看待鸿蒙生态
  • Pr:视频过渡快速参考(合集 · 2025版)
  • LeetCode 第 423 场周赛个人题解
  • 【数据中心技术
  • 响应拦截器的判断
  • pytorch register_buffer介绍
  • SIwave:释放 SIwizard 求解器的强大功能
  • 二叉树(C 语言)
  • 关于 spring boot - application.yml 加载顺序
  • LabVIEW实验室液压制动系统
  • L2 级智能驾驶车辆随时间变化的HMI系统提示效果研究
  • AI 写作(六):核心技术与多元应用(6/10)