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

  • 相关阅读:
    tcr历史夏校介绍
    vue_mixin混入
    Python经典游戏04:用tkinter给老板写一封拒绝不了的辞职信
    企业安全生产双重预防机制的构建和应用
    ArcGIS_修改文本样式
    Java 哈希表
    sql注入 [极客大挑战 2019]LoveSQL 1
    Toronto Research Chemicals 对乙酰氧基苯乙酮说明书
    Linux fork和vfork函数用法
    1030 Travel Plan(Dijksta +DFS)
  • 原文地址:https://blog.csdn.net/HuanBianCheng27/article/details/125548772