QMainWindow

简介: QMainWindow 是 Qt 中用于创建主窗口应用程序的类,支持菜单栏、工具栏、中央部件、停靠部件和状态栏等组件。菜单栏用于添加菜单项和子菜单;工具栏显示常用菜单项,可插入其他窗口部件;中央部件位于主窗口中心,实现主要功能;停靠部件可停靠在窗口四周,用于设置功能部件;状态栏显示程序状态信息。QMainWindow 提供了多种函数和高级用法,如自定义工具栏、多文档接口和快捷键设置。

ction动作类实现,可以添加菜单项(QAction)和子菜单(QMenu)。
一个主窗口只能有一个菜单栏。
工具栏(QToolBar):
一般用于显示常用的菜单项,也可以插入其他窗口部件。
工具栏中的按钮可以绑定特定的操作,方便用户进行快速操作。
一个主窗口可以拥有多个工具栏。
中央部件(QWidget):
位于主窗口的中心区域,是应用程序的主要功能实现区域。
可以放入一个窗口部件作为中心部件,这个部件通常是标准的Qt部件或定制的部件。
一个主窗口只能有一个中心部件,可以通过setCentralWidget()方法来设置。
Dock部件(QDockWidget):
又称停靠部件或停靠窗口,可以停靠在窗口部件的四周。
用来设置一些部件以实现一些功能,类似一个工具箱。
一个主窗口可以拥有多个Dock部件。
状态栏(QStatusBar):
位于主窗口的最底下,用于显示程序的一些状态信息。
可以使用statusBar()方法获取状态栏对象,并通过showMessage()方法显示文本消息。
一个主窗口只能拥有一个状态栏。
三、QMainWindow的主要函数
QMainWindow提供了一系列函数来管理其各个组件,以下是一些主要函数:

构造函数:QMainWindow(QWidget parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
设置中央部件:void setCentralWidget(QWidget
widget)
获取中央部件:QWidget centralWidget() const
设置菜单栏:void setMenuBar(QMenuBar
menuBar)
获取菜单栏:QMenuBar menuBar() const
设置状态栏:void setStatusBar(QStatusBar
statusBar)
获取状态栏:QStatusBar statusBar() const
添加工具栏:
void addToolBar(QToolBar
toolBar)
QToolBar *addToolBar(const QString &title)
设置主窗口标题:void setWindowTitle(const QString &title)
调整主窗口大小:void resize(int w, int h)
四、QMainWindow的高级用法
除了基本的组件布局和函数使用外,QMainWindow还支持一些高级用法,如:

自定义工具栏:可以通过在工具栏上添加自定义的QAction来自定义工具栏的外观和功能。
多文档接口(MDI):如果应用程序需要支持多个文档界面,QMainWindow提供了QMdiArea和QMdiSubWindow来实现多文档接口。
其他布局:除了中央部件外,QMainWindow还支持在其他位置添加QWidget部件,例如左侧、右侧、顶部或底部布局。可以使用QVBoxLayout、QHBoxLayout或其他布局管理器来管理这些部件的位置和大小。
快捷键和动作:QMainWindow允许为菜单项、工具栏按钮和其他控件定义快捷键和操作。这可以通过设置QAction的快捷键和信号-槽连接来实现。

目录
相关文章
|
SQL druid 中间件
【YashanDB知识库】druid连接池查询空间数据报错read time out
【YashanDB知识库】druid连接池查询空间数据报错read time out
|
安全
如何打开关闭Edge鼠标手势
【8月更文挑战第28天】本文介绍了在 Microsoft Edge 浏览器中开启和关闭鼠标手势的方法。首先,通过浏览器设置菜单进入设置页面;然后,查找“鼠标手势”设置或在相关类别中搜索。由于 Edge 可能未内置此功能,可考虑安装支持鼠标手势的扩展程序,如 CrxMouse 鼠标手势,以实现该功能。安装时需注意安全性和可靠性。
6743 5
WK
|
数据安全/隐私保护
QLineEdit
QLineEdit是Qt框架中的单行文本输入框控件,支持文本输入、占位符、密码模式、输入限制等功能。常用成员函数包括设置文本、占位符、显示模式、最大长度等。提供多种信号,如文本变化、编辑、回车等。支持添加动作和清除按钮,可定制样式,适用于登录、搜索等场景。
WK
659 0
|
API UED
【Qt 学习笔记】Qt窗口 | 状态栏 | QStatusBar的使用及说明
【Qt 学习笔记】Qt窗口 | 状态栏 | QStatusBar的使用及说明
2892 4
|
机器学习/深度学习 人工智能 算法
程序员必知:VS2017动态链接库(.dll)的生成与使用
程序员必知:VS2017动态链接库(.dll)的生成与使用
1150 0
|
安全
Qt日志工具--QsLog
Qt日志工具--QsLog
653 1
|
开发工具 git
Git恢复之前版本的两种方法reset、revert(图文详解)
Git恢复之前版本的两种方法reset、revert(图文详解)
1838 0
|
C++
QT图形视图系统 - 使用一个项目来学习QT的图形视图框架 - 始篇
详细的介绍可以看QT的官方助手,那里面介绍的详细且明白,需要一定的英语基础,我这里直接使用一个开源项目来介绍QGraphicsView、QGraphicsScene的使用。
850 1
Visual Studio 2019 设置程序结束控制台不关闭
修改设置使控制台应用运行结束,控制台不自动退出。
1326 0
Visual Studio 2019 设置程序结束控制台不关闭
Vs+Qt 界面添加背景图的两种方式(非常实用)
Vs+Qt 界面添加背景图的两种方式(非常实用)
下一篇
开通oss服务