文章目录

  • 1 Qt中的QMainWindow简介
    • 1.1 应用程序中的主窗口
    • 1.2 QMainWindow
  • 2 QMainWindow中的菜单栏
  • 3 QMainWindow中的工具栏
  • 4 QMainWindow中的状态栏

1 Qt中的QMainWindow简介

1.1 应用程序中的主窗口

应用程序中的主窗口:

  • 主窗口是与用户进行长时间交互的顶层窗口。
  • 程序的绝大多数功能直接由主窗口提供。
  • 主窗口通常是应用程序启动后显示的第一个窗口。
  • 整个程序由一个主窗口和多个对话框组成。

1.2 QMainWindow

Qt中的主窗口:

  • Qt开发平台中直接支持主窗口的概念。
  • QMainWindow是Qt中主窗口的基类。
  • QMainWindow继承于QWidget是一种容器类型的组件。

QMainWindow中封装的秘密:

  1. 菜单栏。
  2. 工具栏。
  3. 中心组件。
  4. 停靠组件。
  5. 状态栏。

    QMainWindow中的组件布局:

2 QMainWindow中的菜单栏

菜单栏只能有一个!

在Qt中提供与菜单相关的类组件:

在Qt主窗口中创建菜单:

注意:QAction* action = new QAction("New(&O)", NULL);,这里也可以设置快捷键。

快捷键设置:
action->setShortcut(QKeySequence(KEY))

  • QKeySequence:Qt中与快捷键相关的类。
  • KEY:Qt中代表键值的常量,比如Qt::CTRL, Qt::KEY_X

QAction的信号:

QAction被点击之后会产生一个triggered信号:

  • 通过信号与槽的机制能够捕捉到QAction对象的操作。
  • 项目中可以将多个信号映射到同一个槽函数。

3 QMainWindow中的工具栏

工具栏的概念和意义:

  • 应用程序中集成各种功能实现快捷使用的一个区域。
  • 工具栏并不是应用程序必须存在的组件。
  • 工具栏中的元素可以是各种窗口组件。
  • 工具栏中的元素通常以图标按钮的方式存在。

在Qt中提供与工具栏相关的组件:

工具栏可以有多个!

在Qt主窗口中创建工具栏:

QToolBar的关键成员函数:

  • void setFloatable(bool floatable):设置工具栏是否可以悬浮(不在指定的边框位置)。
  • void setMovable(bool movable):设置工具栏是否可以拖动。
  • void setIconSize(const QSize& iconSize):设置工具栏图标的大小。

QToolBar中可以加入任意的QWidget组件:


4 QMainWindow中的状态栏

状态栏的概念和意义:

  • 状态栏是应用程序中输出简要信息的区域。
  • 状态栏一般位于主窗口的最底部。
  • 状态栏中的消息类型:
    • 实时消息,如:当前程序状态。
    • 永久消息,如:程序版本号,机构名称。
    • 进度消息,如:进度条提示,百分比提示。

在Qt中提供与状态栏相关的类组件:

在Qt主窗口中创建状态栏:

Qt状态栏的设计原则:

  • 左边的区域用于输出实时消息。
  • 右边的区域用于设置永久消息。
  • addWidget在状态栏左半部分添加组件。
  • addPermanentWidget在状态栏右半部分添加组件。

状态栏示例程序:

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{QStatusBar* sb = statusBar();QLabel* l = new QLabel("Label");QLineEdit* e = new QLineEdit();QPushButton* b = new QPushButton("Button");sb->addPermanentWidget(l);sb->addPermanentWidget(e);sb->addPermanentWidget(b);sb->showMessage("D.T.Software");
}

参考资料:

  1. QT实验分析教程

Qt中的QMainWindow相关推荐

  1. QT中QWidget、QDialog及QMainWindow的区别

    QWidget类是所有用户界面对象的基类. 窗口部件是用户界面的一个基本单元:它从窗口系统接收鼠标.键盘和其它事件,并且在屏幕上绘制自己.每一个窗口部件都是矩形的,并且它们按Z轴顺序排列.一个窗口部件 ...

  2. 【PyQt】Qt中QMainWindow, QWidget以及QDialog的区别和选择

    PyQt中MainWindow, QWidget以及Dialog的区别和选择 1. Qt界面分类 在Qt Designer设计界面时,首先需要选择界面模板,主要分为三个类: 1. Main Windo ...

  3. qt中对任务繁忙时QProgressDialog的使用

    在qt中对于后台数据处理比较耗时情况下,如果放在UI主线程中来处理,给人一种卡顿的感觉,可以将耗时的部分放在次线程中来处理,主线程来显示处理进度. 在次线程中处理时,需要将处理进度信息传给UI线程,只 ...

  4. Qt中的模型视图设计模式

    文章目录 1 初探Qt中的模型视图设计模式 2 模型视图中的索引 3 模型中的数据组织方式初探 1 初探Qt中的模型视图设计模式 模型视图设计模式的核心思想: 模型(数据)与视图(显示)相分离. 模型 ...

  5. Qt中的QLineEdit、QTextEdit、QPlainTextEdit

    文章目录 1 Qt中的文本编辑组件 2 QLineEdit组件 2.1 QLineEdit组件简介 2.2 QLineEdit常用方法 1 Qt中的文本编辑组件 Qt中支持3种常用的文本编辑组件: Q ...

  6. Qt 中容器类型的控件

    转载:https://subingwen.cn/qt/qt-containers/ 1.QWidget 这个类是所有窗口类的父类,可以作为独立窗口使用,也可以内嵌到其它窗口中使用. Qt 中的所有控件 ...

  7. Qt中Ui名字空间以及setupUi函数的原理和实现

    Qt中Ui名字空间以及setupUi函数的原理和实现 分类: Qt GUI 2012-03-08 15:38 10514人阅读 评论(4) 收藏 举报 uiqtsignalclassdelete 用最 ...

  8. 【Qt】 Qt中实时更新UI程序示例

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 实时更新UI(非信号与槽) 04. 实时更新UI(信号与槽) 05. 源码下载 06. 附录 01. 概述 Qt在运行时会 ...

  9. QT中事件处理、事件过滤器、拖放事件分析

    Qt: 事件过滤器 obj->installEventFilter(filterObject);常常是obj->installEventFilter(this). 发送到obj的所有事件, ...

最新文章

  1. linux加微软的数据库,在Linux上使用Microsoft SQL – 安装SQL
  2. linux查看与修改交换内存配置(解决zabbix-agent启动报错)
  3. SpringBoot用Servlet处理请求
  4. java基础之冒泡排序
  5. Logtail从入门到精通(三):机器分组配置
  6. screw ---- 数据库转文档
  7. 2.高性能MySQL --- MySQL 基准测试
  8. hdoj 1071 The Area 求面积
  9. 日期无忧,Python计算日期清单
  10. Cnblogs与Oblog的比较
  11. WordPress主题justnews仿某码屋资源下载站源码-整站打包
  12. 使用netwox实现tcp rst 攻击及防御措施
  13. 达梦DM数据库—线上培训学习简记
  14. 帕慕克给我上的一堂编程学习课
  15. vscode找不到执行文件导致更新失败
  16. 【TS TSP】基于matlab禁忌搜索求解旅行商问题【含Matlab源码 447期】
  17. UVA 10074 Take the Land(最大子矩阵和变形)
  18. Elasticsearch分析器(analyzer)以及与spring boot整合
  19. Project 视频 来啦
  20. OSChina 周三乱弹 —— 请叫我马化喵

热门文章

  1. 【数理知识】特征值、特征向量、左特征向量
  2. 0.0 目录-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授
  3. STM32 电机教程 16 - PMSM电机磁场定向控制原理
  4. 解决HierarchyViewer不能连接真机的问题
  5. linux下SVN配置笔记(转)
  6. 利用SIMULINK搭建一个16QAM调制解调收发系统
  7. 采用傅立叶变换空间载波法从强度分布得到相位分布,即从空间上呈正弦分布的光强信息,恢复出波面的相位信息
  8. ME3630模块常用指令介绍
  9. void *变量用法
  10. Linux /etc/profile文件详解