【Qt】QMainWindow应用程序窗口类简单介绍
QMainWindow
介绍
QMainWindow
是一个为用户提供主窗口程序的类,是许多应用程序的基础,包含的组件有:
菜单栏
QMenuBar
,一个主窗口最多只能有一个菜单栏;包含一个下拉菜单项的列表,这些菜单项由QAction
动作类实现,位于主窗口的顶部。QMenuBar *menubar = menuBar(); // 创建一个菜单栏,主窗口最多只能有一个菜单栏// 创建菜单 FileQMenu *fileMenu = menubar->addMenu(tr("&File"));// 创建菜单项QAction *newAction = fileMenu->addAction(tr("&New"));fileMenu->addSeparator(); // 添加分隔线// 将菜单栏放入窗口中setMenuBar(menubar);
工具栏
QToolBar
,一个主窗口可以有多个工具栏;工具栏一般用于显示一些常用的菜单项目,也可以插入其它窗口部件,可以移动。// 创建工具栏QToolBar *toolbar = new QToolBar(this);// 设置只允许左右停靠 // toolbar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);// 设置浮动操作toolbar->setFloatable(false);// 设置移动,如果设置为false表示工具栏不会再移动,是固定的 // toolbar->setMovable(false);//addToolBar(toolbar); // 工具栏放入窗口中addToolBar(Qt::ToolBarArea::TopToolBarArea,toolbar); // 设置工具栏在窗口的左侧// 在工具栏中添加动作toolbar->addAction(newAction);toolbar->addSeparator();// 工具栏中添加控件QPushButton *button = new QPushButton(tr("aaa"),this);toolbar->addWidget(button);
中心部件
Central Widget
,一个主窗口只能有一个中心部件;在主窗口的中心区域可以放入一个窗口部件作为中心部件,是应用程序的主要功能实现区域。// 设置中心部件QTextEdit *textEdit = new QTextEdit(this);setCentralWidget(textEdit); // 设置中心部件到窗口中
锚接部件
QDockWidget
,一个主窗口可以有多个Dock部件;也被称为停靠窗口,可以停靠在中心部件的四周,用来防止一些部件实现一些功能,类似工具箱。QDockWidget *dockWidget = new QDockWidget(tr("Dock部件"),this); // 创建dock控件addDockWidget(Qt::DockWidgetArea::BottomDockWidgetArea,dockWidget); // dock控件放到窗口中// 设置停靠区域dockWidget->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
状态栏
QStatusBar
,一个主窗口只能有一个状态栏;用于显示程序的一些状态信息,在主窗口的最底部。// 创建状态栏QStatusBar *statusbar = statusBar();// 设置到窗口中setStatusBar(statusbar);// 放置QLabel控件到状态栏QLabel *label = new QLabel(tr("Ready1"),this);statusbar->addWidget(label);// 放置控件到右侧QLabel *label2 = new QLabel(tr("Ready2"),this);statusbar->addPermanentWidget(label2); // 状态栏信息放到右侧
代码实现创建窗口的各个部件:
void MainWindow::createMenu()
{QMenuBar *menubar = menuBar(); // 创建一个菜单栏,主窗口最多只能有一个菜单栏// 创建菜单 FileQMenu *fileMenu = menubar->addMenu(tr("&File"));// 创建菜单项QAction *newAction = fileMenu->addAction(tr("&New"));QAction *openAction =fileMenu->addAction(tr("&Open"));fileMenu->addSeparator(); // 添加分隔线QAction *saveAction =fileMenu->addAction(tr("&Save"));QAction *saveAsAction =fileMenu->addAction(tr("Save &As"));fileMenu->addSeparator(); // 添加分隔线QAction *exitAction =fileMenu->addAction(tr("&Exit"));connect(exitAction,&QAction::triggered,this,&MainWindow::close);// 创建菜单 EditQMenu *editMenu = menubar->addMenu(tr("Edit"));// 创建菜单 AboutQMenu *aboutMenu = menubar->addMenu(tr("About"));// 将菜单栏放入窗口中setMenuBar(menubar);// 创建工具栏QToolBar *toolbar = new QToolBar(this);// 设置只允许左右停靠toolbar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);// 设置浮动操作toolbar->setFloatable(false);// 设置移动,如果设置为false表示工具栏不会再移动,是固定的
// toolbar->setMovable(false);//addToolBar(toolbar); // 工具栏放入窗口中addToolBar(Qt::ToolBarArea::LeftToolBarArea,toolbar); // 设置工具栏在窗口的左侧// 在工具栏中添加动作toolbar->addAction(newAction);toolbar->addAction(openAction);// 工具栏中添加控件QPushButton *button = new QPushButton(tr("aaa"),this);toolbar->addWidget(button);
}void MainWindow::createStatusBar()
{// 创建状态栏QStatusBar *statusbar = statusBar();// 设置到窗口中setStatusBar(statusbar);// 放置QLabel控件到状态栏QLabel *label = new QLabel(tr("Ready1"),this);statusbar->addWidget(label);// 放置控件到右侧QLabel *label2 = new QLabel(tr("Ready2"),this);statusbar->addPermanentWidget(label2); // 状态栏信息放到右侧}void MainWindow::createDockWidget()
{QDockWidget *dockWidget = new QDockWidget(tr("Dock部件"),this); // 创建dock控件addDockWidget(Qt::DockWidgetArea::BottomDockWidgetArea,dockWidget); // dock控件放到窗口中// 设置停靠区域dockWidget->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);}void MainWindow::createCentralWidget()
{// 设置中心部件QTextEdit *textEdit = new QTextEdit(this);setCentralWidget(textEdit); // 设置中心部件到窗口中
}
将部件设置到窗口中的函数一个容易记的方法,只能有一个的部件是
set
开头的,可以有多个的部件是add
开头的。
【Qt】QMainWindow应用程序窗口类简单介绍相关推荐
- 【Qt】控件——QPlainTextEdit使用简单介绍:常用方法及信号、逐行读取编辑框的内容、使用自带的快捷菜单、作为日志显示窗口
Qt控件-QPlainTextEdit使用 参考链接: https://blog.csdn.net/seniorwizard/article/details/109726147; https://bl ...
- QT Creator应用程序开发——01简单按钮显示
目录 前言 一.新建项目 二.设计ui页面和编写程序 (一)设计ui页面 1.设置按钮 2.设置标签 3.设置转到槽 (二)编写程序 (三)构建运行 (三)测试 结语 前言 本系列文章,是经博主的QT ...
- 在Qt中设置程序图标的方法介绍
本文主要介绍在 Qt 中设置程序图标的方法. 说明: 本文中的应用程序是面向 Windows 操作系统的: 本文中使用的 Qt Creator 版本号为:7.0.0: 本文中使用的 Qt 版本号为:5 ...
- Java里的字符串, String类简单介绍.
String类在java面试中也是1个常见的问题点. 所以也是写在这里方便以后查阅了. 大家都知道c语言里是没有String 字符串这个数据类型的. 只能用字符数组的1个特殊形式来表示一个字符串, 就 ...
- python打开excel窗口_简单介绍python在CMD界面读取excel所有数据
这篇文章主要介绍了python在CMD界面读取excel所有数据,帮助大家更好的利用python办公,感兴趣的朋友可以了解下 代码 import xlrd import os from prettyt ...
- android 事件类,30_Android MotionEvent 类简单介绍
在自定义 View 的过程中,如果设计到控件的触摸事件处理,我们就需要重写 onTouchEvent() 方法.在这个方法中最重要的一个类就是 MotionEvent类.下面会详细介绍一下这个类的各种 ...
- matlab之程序流程控制简单介绍
MATLAB中的程序流程控制语句有: 1.分支控制语句(if结构和switch结构) 2.循环控制语句(for循环.while循环.continue语句和break语句) 3.程序终止语句(retur ...
- 简单介绍使用 ssh 连接远程服务器运行图形界面程序
使用 SSH 远程连接运行图形界面程序 windwiny.20080310 简单介绍使用 ssh 连接远程服务器运行图形界面程序. 一.服务器安装运行SSH服务.在Ubuntu下: 安装 代码 ...
- 基于VTK与Qt的体绘制程序
基于VTK与Qt的体绘制程序 分类: VTK Qt Volume Rendering C&C++ 2013-06-10 09:17 3434人阅读 评论(13) 收藏 举报 目录(?)[+] ...
最新文章
- adb logcat 抓取日志_手机抓取崩溃的log日志(安卓/ios)
- springboot自定义配置文件
- mysql数据库事务_MySQL数据库的事务管理
- 正则表达式 特殊符号系列 通配符系列
- Java 11:JOIN表,获取Java流
- 不可逆加密算法有哪些_对称加密算法和非对称加密算法
- OpenCV threshold 二值化
- hive表指定分区字段搜索_hive导出分区表到mysql 分区字段值怎么取
- VFP DownFileX下载异常问题
- IBM X3850 X5 PCI故障实例
- 计算机键盘中英文,电脑键盘中英文切换键
- css 剪辑图片_[译]用CSS剪切圆形图片
- 百度地图infowindow上添加自定义点击事件
- 半年营收200亿,翻台率却降到3次/天,老板娘出逃海底捞怎么了?
- 流浪地球2真实成本多少?怎么参与?找谁参与?安全可靠吗?
- unity+google cardboard
- 北京 买房 提取 公积金
- 模式识别的概念、方法及应用
- shell 脚本实现 k8s 集群环境下指定 ns 资源的 yaml 文件备份
- 多项式曲线——搞清楚贝塞尔曲线、B样条曲线、Nurbs曲线的区别
热门文章
- 明代文学类毕业论文文献都有哪些?
- 【C语言】文学研究助手
- python+untitest+request实现接口自动化测试
- M401a armbian下安装cups共享打印机
- 2021-2022学年广州市广大附中九年级第二学期开学考试英语试题
- 如何用Spark进行数据分析
- 漩涡中的中国首富李彦宏
- 爬虫百战(四)——爬取yy短视频
- [野狐行][2016/04/11][群直播系列2][那些年让我们郁闷不已的游戏保护]
- OSG智能指针:osg::ref_ptr