• 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>

  • 相关阅读:
    python中float类型是如何实现的
    使用cgroup控制内存
    通过Power Platform自定义D365 CE 业务需求 - 3. 使用Microsoft Power应用程序
    Oracle Hint 语法详解
    前端面试题:基础理论整理(篇2)
    Spring 远程命令执行漏洞分析(CVE-2022-22965)
    spark集成hive
    Android Framework基础知识:Zygote启动流程
    C#知识|上位机子窗体嵌入主窗体方法(实例)
    Java设计模式之观察者模式
  • 原文地址:https://blog.csdn.net/HuanBianCheng27/article/details/125548772