Qt中的QMainWindow
文章目录
- 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中封装的秘密:
- 菜单栏。
- 工具栏。
- 中心组件。
- 停靠组件。
- 状态栏。
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");
}
参考资料:
- QT实验分析教程
Qt中的QMainWindow相关推荐
- QT中QWidget、QDialog及QMainWindow的区别
QWidget类是所有用户界面对象的基类. 窗口部件是用户界面的一个基本单元:它从窗口系统接收鼠标.键盘和其它事件,并且在屏幕上绘制自己.每一个窗口部件都是矩形的,并且它们按Z轴顺序排列.一个窗口部件 ...
- 【PyQt】Qt中QMainWindow, QWidget以及QDialog的区别和选择
PyQt中MainWindow, QWidget以及Dialog的区别和选择 1. Qt界面分类 在Qt Designer设计界面时,首先需要选择界面模板,主要分为三个类: 1. Main Windo ...
- qt中对任务繁忙时QProgressDialog的使用
在qt中对于后台数据处理比较耗时情况下,如果放在UI主线程中来处理,给人一种卡顿的感觉,可以将耗时的部分放在次线程中来处理,主线程来显示处理进度. 在次线程中处理时,需要将处理进度信息传给UI线程,只 ...
- Qt中的模型视图设计模式
文章目录 1 初探Qt中的模型视图设计模式 2 模型视图中的索引 3 模型中的数据组织方式初探 1 初探Qt中的模型视图设计模式 模型视图设计模式的核心思想: 模型(数据)与视图(显示)相分离. 模型 ...
- Qt中的QLineEdit、QTextEdit、QPlainTextEdit
文章目录 1 Qt中的文本编辑组件 2 QLineEdit组件 2.1 QLineEdit组件简介 2.2 QLineEdit常用方法 1 Qt中的文本编辑组件 Qt中支持3种常用的文本编辑组件: Q ...
- Qt 中容器类型的控件
转载:https://subingwen.cn/qt/qt-containers/ 1.QWidget 这个类是所有窗口类的父类,可以作为独立窗口使用,也可以内嵌到其它窗口中使用. Qt 中的所有控件 ...
- Qt中Ui名字空间以及setupUi函数的原理和实现
Qt中Ui名字空间以及setupUi函数的原理和实现 分类: Qt GUI 2012-03-08 15:38 10514人阅读 评论(4) 收藏 举报 uiqtsignalclassdelete 用最 ...
- 【Qt】 Qt中实时更新UI程序示例
00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 实时更新UI(非信号与槽) 04. 实时更新UI(信号与槽) 05. 源码下载 06. 附录 01. 概述 Qt在运行时会 ...
- QT中事件处理、事件过滤器、拖放事件分析
Qt: 事件过滤器 obj->installEventFilter(filterObject);常常是obj->installEventFilter(this). 发送到obj的所有事件, ...
最新文章
- linux加微软的数据库,在Linux上使用Microsoft SQL – 安装SQL
- linux查看与修改交换内存配置(解决zabbix-agent启动报错)
- SpringBoot用Servlet处理请求
- java基础之冒泡排序
- Logtail从入门到精通(三):机器分组配置
- screw ---- 数据库转文档
- 2.高性能MySQL --- MySQL 基准测试
- hdoj 1071 The Area 求面积
- 日期无忧,Python计算日期清单
- Cnblogs与Oblog的比较
- WordPress主题justnews仿某码屋资源下载站源码-整站打包
- 使用netwox实现tcp rst 攻击及防御措施
- 达梦DM数据库—线上培训学习简记
- 帕慕克给我上的一堂编程学习课
- vscode找不到执行文件导致更新失败
- 【TS TSP】基于matlab禁忌搜索求解旅行商问题【含Matlab源码 447期】
- UVA 10074 Take the Land(最大子矩阵和变形)
- Elasticsearch分析器(analyzer)以及与spring boot整合
- Project 视频 来啦
- OSChina 周三乱弹 —— 请叫我马化喵