• QT学习日记7——QMainWindow


    目录

    一、QMainWindow简介

    1.1 文字

    1.2 图示

    二、创建界面

    2.1 选择QMainWindow

    2.2 创建菜单栏

    2.3 创建工具栏

    2.4 状态栏

    2.5 铆接部件

    2.6 设置中心部件


    一、QMainWindow简介

    1.1 文字

    QMainWindow 是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器,图片编辑器等

    1.2 图示

    二、创建界面

    2.1 选择QMainWindow

    2.2 创建菜单栏

    1、创建一个菜单栏没有扔到屏幕上

    2、把菜单栏放入窗口,并创建菜单

    菜单栏最多只能有一个

    1. #include "mainwindow.h"
    2. #include <QMenuBar>
    3. MainWindow::MainWindow(QWidget *parent)
    4. : QMainWindow(parent)
    5. {
    6. // 重置窗口大小
    7. resize(600, 400);
    8. // 菜单栏创建
    9. QMenuBar *bar = menuBar();
    10. // 将菜单栏放入到窗口中
    11. setMenuBar(bar);
    12. // 创建菜单
    13. QMenu* fileMenu = bar->addMenu("文件");
    14. QMenu* editMenu = bar->addMenu("编辑");
    15. }
    16. MainWindow::~MainWindow()
    17. {
    18. }

    3、创建菜单项

    4、添加分隔符

    2.3 创建工具栏

    1、默认生成

    1. #include "mainwindow.h"
    2. #include <QMenuBar>
    3. #include <QToolBar>
    4. #include <QDebug>
    5. MainWindow::MainWindow(QWidget *parent)
    6. : QMainWindow(parent)
    7. {
    8. // 重置窗口大小
    9. resize(600, 400);
    10. // 菜单栏创建
    11. QMenuBar *bar = menuBar();
    12. // 将菜单栏放入到窗口中
    13. setMenuBar(bar);
    14. // 创建菜单
    15. QMenu* fileMenu = bar->addMenu("文件");
    16. QMenu* editMenu = bar->addMenu("编辑");
    17. fileMenu->addAction("新建");
    18. fileMenu->addSeparator();
    19. fileMenu->addAction("打开");
    20. QToolBar* toolBar = new QToolBar(this);
    21. addToolBar(toolBar);
    22. }
    23. MainWindow::~MainWindow()
    24. {
    25. }

    2、在左边生成

    可以查文档有关这个函数其他参数

    3、只允许左右停靠

    4、不允许浮动

    5、移动的总开关

    关闭这个开关,上面设置的东西都没有意义了

    toolBar->setMovable(false);

    6、在工具栏中设置内容

    1. #include "mainwindow.h"
    2. #include <QMenuBar>
    3. #include <QToolBar>
    4. #include <QDebug>
    5. MainWindow::MainWindow(QWidget *parent)
    6. : QMainWindow(parent)
    7. {
    8. // 重置窗口大小
    9. resize(600, 400);
    10. // 菜单栏创建
    11. QMenuBar *bar = menuBar();
    12. // 将菜单栏放入到窗口中
    13. setMenuBar(bar);
    14. // 创建菜单
    15. QMenu* fileMenu = bar->addMenu("文件");
    16. QMenu* editMenu = bar->addMenu("编辑");
    17. QAction* newAction = fileMenu->addAction("新建");
    18. fileMenu->addSeparator();
    19. QAction* openAction = fileMenu->addAction("打开");
    20. QToolBar* toolBar = new QToolBar(this);
    21. addToolBar(Qt::LeftToolBarArea, toolBar);
    22. // 只允许 左右停靠
    23. toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea );
    24. toolBar->setFloatable(false);
    25. toolBar->addAction(newAction);
    26. toolBar->addAction(openAction);
    27. }
    28. MainWindow::~MainWindow()
    29. {
    30. }

    添加分隔线

    7、工具栏中添加控件

     

    2.4 状态栏

    1、状态栏

    最多只能有一个

    1. #include "mainwindow.h"
    2. #include <QMenuBar>
    3. #include <QToolBar>
    4. #include <QDebug>
    5. #include <QPushButton>
    6. #include <QStatusBar>
    7. #include <QLabel>
    8. MainWindow::MainWindow(QWidget *parent)
    9. : QMainWindow(parent)
    10. {
    11. // 重置窗口大小
    12. resize(600, 400);
    13. // 菜单栏创建
    14. QMenuBar *bar = menuBar();
    15. // 将菜单栏放入到窗口中
    16. setMenuBar(bar);
    17. // 创建菜单
    18. QMenu* fileMenu = bar->addMenu("文件");
    19. QMenu* editMenu = bar->addMenu("编辑");
    20. QAction* newAction = fileMenu->addAction("新建");
    21. fileMenu->addSeparator();
    22. QAction* openAction = fileMenu->addAction("打开");
    23. QToolBar* toolBar = new QToolBar(this);
    24. addToolBar(Qt::LeftToolBarArea, toolBar);
    25. // 只允许 左右停靠
    26. toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea );
    27. toolBar->setFloatable(false);
    28. toolBar->addAction(newAction);
    29. toolBar->addSeparator();
    30. toolBar->addAction(openAction);
    31. QPushButton* btn = new QPushButton("aa", this);
    32. toolBar->addWidget(btn);
    33. // 状态栏 最多有一个
    34. QStatusBar* stBar = statusBar();
    35. // 设置到窗口中
    36. setStatusBar(stBar);
    37. // 创建标签控件
    38. QLabel* label = new QLabel("提示信息", this);
    39. // 把标签控件放进状态栏
    40. stBar->addWidget(label);
    41. }

     

    2、右侧提示信息 

     

    2.5 铆接部件

    加头文件 #include <QDockWidget> 

     

    设置后期停靠区域,只允许上下

     

    2.6 设置中心部件

    只能设置一个

    添加头文件  #include <QTextEdit>

  • 相关阅读:
    华为机试 - 可以组成网络的服务器
    JAVA面试题|AQS详细剖析
    为什么我们如此热爱Python
    代码随想录二刷day34
    测试面试精选题:可用性测试主要测试哪些方面,举例说明
    软件测试八款优秀的API安全测试工具,会用三款工作效率能提升50%
    SpringBoot3新特性
    10【Mybatis延迟加载】
    go学习-基本知识点
    LeetCode_88_合并两个有序数组
  • 原文地址:https://blog.csdn.net/HuanBianCheng27/article/details/125548772