3.QMainWindow
QMainWindow介绍
QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar),多个工具栏(tool
bars),多个铆接部件(dock widgets),一个状态栏(status bar),及一个中心部件central widget,是许多应用程序的基础,如文本编辑器,图形编辑器等。
- menu bar
包含的必要的头文件:
#include<QMenuBar>
涉及到的类:
1.QMenuBar
2.QMenu
涉及到的方法:
1.创建一个菜单栏,属于QMainWIndow的方法
QMenuBar*mb=this->menuBar()//menuBar就是创建菜单栏的方法(应该是实例化了一个QMenuBar的对象),归属QMainWIndow,
//返回一个QMenuBar类型的指针,用来进行菜单栏的有关操作(掉用QMenuBar的有关函数,注意这个并不同于QPushButton的构造函数创建,有明显的依赖关系)
//通过调用setMenuBar方法,将菜单栏挂在QMainBar上
this->setMenuBar(mb);
2.创建菜单,属于QMenuBar的方法
QMenu*fileMenu=mb->addMenu("文件);
QMenu*editMenu=mb->addMenu("编辑"); //addMenu()就是创建菜单项的方法(应该是实实例化了一个QMenu的对象),返回一个QMenu类型的指针,可以用这个指针来修改QMenu对象的属性.
3.创建菜单项,属于QMenu的方法
QAction*newAction=fileMenu->addAction("新建");//不知道有没有返回值,确定了,返回值为QAction类型的指针
//添加分隔符
fileMenu->addSeparator();
QAction*fileAction=fileMenu->addAction("打开");//指针fileAction代表了“打开”这一动作
- toolbar
包含的必要的头文件
#include<QToolBar>
涉及的类:
1.QToolBar
涉及到的关键方法:
1.QToolBar单独的类,通过构造函数创建出一个工具栏
QToolBar*bar=new QToolBar(this);
//QMainWindow的方法,将QToolBar对象挂在QMainWindow
addToolBar(bar);
//固定工具栏在某一侧,重载addToolBar函数
addToolBar(QT::leftToolBarArea,bar);
//QToolBar的方法,固定工具栏的位置
bar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
//设置浮动
bar->setFloatable(false);
//设置是否能够移动
bar->setMovable(false);
2.创建工具,属于QToolBar的方法,返回QAction的指针
bar->addAction(newAction);//newAction正是之前菜单栏创建的动作,同一个动作
//添加分割线
bar->setSeparator();
bar->addAction(fileAction);
//工具栏中添加控件
QPushButton*btn=new QPushButton("a",this);
bar->addWidget(btn);
- statusBar
包含必要的头文件
#include<QStatusBar>
涉及的类:
1.QStatusBar
2.QLabel
涉及到的关键方法:
1.创建一个QStatusBar对象,并返回指针,是MainWindow的方法
QStatusBar*stBar=this->statusBar();
2.将状态栏设置到窗口中,是属于MainWindow的方法
this->setStatusBar(stBar);
3.放标签控件
QLabel*Label1=new QLabel("提示信息",this);//利用QLabel的构造函数创建一个QLabel
this->addWidget(label1);
QLabel*Label2=new QLabel(“右侧提示信息”,this);
this->addPermanentWIdget(Label2);
- dock widgets
必须要包含的头文件
#include<QDockWidget>
涉及到的关键方法:
1.QDockWIdget的构造函数,创建一个QDockWIdget类的对象
QDockWidget*dockWidget=new QDockWidget("浮动",this);
2.设置dockWIdget的位置的方法,属于窗口类
this->addDockWidget(Qt::BottomDockWidgetArea,dockWidget);
- central Widget
中心部件,只能有一个,顾名思义,中心
可能涉及到的类:
1.QTextEdit
包含头文件:
#include<QTextEdit>
涉及到的关键方法:
1.控件的构造函数
QTextEdit*edit=new QTextEdit(this);
2.将中心部件挂在窗口上,属于窗口MainWIndow的方法
this->setCentralWidget(edit);
总结:将部件挂在窗口上时,set-一个,add-多个
3.QMainWindow的更多相关文章
- 在QMainWindow中利用多个QDockWidget构成标签页tab(原创)
功能描述: 在QMainWindow下,使用多个QDockWidget构成可切换,可拖动,可关闭的标签页:标签页的切换由相关联的QAction触发. 实现效果: 代码如下: QDockWidget * ...
- QDialog QMainwindow QWidget QFrame不同时候用法.
继承关系:在Qt中所有的类都有一个共同的基类QObject ,QWidget直接继承与QPaintDevice类,QDialog.QMainWindow.QFrame直接继承QWidget 类. ...
- [转载] - QWidget、QMainWindow、QDialog和QFrame的区别
继承关系:在Qt中所有的类都有一个共同的基类QObject ,QWidget直接继承与QPaintDevice类,QDialog.QMainWindow.QFrame直接继承QWidget 类. ...
- QMainWindow的setLayout的问题
因为QMainWindow有自己的layout,所以需要一个QWidget,然后setCentralWidget,给这个QWidget调用setLayout http://stackoverflow. ...
- QT中QWidget、QDialog QMainWindow
继承关系:在Qt中所有的类都有一个共同的基类QObject ,QWidget直接继承与QPaintDevice类,QDialog.QMainWindow.QFrame直接继承QWidget 类. QW ...
- 【转】QT中QWidget、QDialog及QMainWindow的区别
QWidget类是所有用户界面对象的基类. 窗口部件是用户界面的一个基本单元:它从窗口系统接收鼠标.键盘和其它事件,并且在屏幕上绘制自己.每一个窗口部件都是矩形的,并且它们按Z轴顺序排列.一个窗口部件 ...
- 【Qt】QWidget、QDialog、QMainWindow的异同点【转】
简述 在分享所有基础知识之前,很有必要在这里介绍下常用的窗口-QWidget.QDialog.QMainWindow. 熟悉Qt的同学都应该知道,在新建Qt Widgets项目进行类信息选择时会碰到它 ...
- QWidget、QDialog、QMainWindow的异同点
简述 在分享所有基础知识之前,很有必要在这里介绍下常用的窗口 - QWidget.QDialog.QMainWindow. QWidget继承于QObject和QPaintDevice,QDialog ...
- 让QMainWindow也表现出QDialog的exec函数的特征
前几天在做毕业设计项目的时候,使用的PyQt4,想实现这么样一个功能: 场景描述:主窗口a(QMainWindow类型)和主窗口b(QMainWindow),b是通过a窗口中某一个按钮弹出来的. 功能 ...
- QWidget QMainWindow QDialog 三者区别
Qt类是一个提供所需的像全局变量一样的大量不同的标识符的命名空间.通常情况下,你可以忽略这个类.QObject和一些其它类继承了它,所以在这个Qt命名空间中定义的所有标识符通常情况下都可以无限制的使用 ...
随机推荐
- 课时05:Linux必备系统命令
- SpringBoot 实现文件上传
参考:Java springboot进阶教程 文件上传功能实现 后端代码编写 常见错误分析与解决 在 Service 业务层接口中增加一个上传文件的方法 因为文件并不是上传至数据库中,所以不需要编写 ...
- 手写 p-map(控制并发数以及迭代处理 promise 的库)
介绍 p-map 是一个迭代处理 promise 并且能控制 promise 执行并发数的库.作者是 sindresorhus,他还创建了许多关于 promise 的库 promise-fun,感兴趣 ...
- 001 C#配置多个版本Swagger说明
1. AddSwaggerGen AddSwaggerGen 是配置多个版本的swagger的关键 Path.Combine 当前项目运行的路径 UseSwaggerUI 主要分为 2 步骤 : 1 ...
- 博客配套视频已上传至 B 站,欢迎关注
博客配套视频已上传至 B 站,欢迎关注+一键三连 链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 链接 ...
- SpringBoot进阶教程(八十二)Spring Security图形验证码
在之前的博文<SpringBoot进阶教程(八十)Spring Security>中,已经介绍了在Spring Security中如何基于formLogin认证.基于HttpBasic认证 ...
- 在 Kubernetes Pod 中如何获取客户端的真实 IP
Kubernetes 依靠 kube-proxy 组件实现 Service 的通信与负载均衡.在这个过程中,由于使用了 SNAT 对源地址进行了转换,导致 Pod 中的服务拿不到真实的客户端 IP 地 ...
- KubeSphere 社区双周报 | OpenFunction v1.0.0 发布 | 2023.03.03-03.16
KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...
- RabbitMQ3.8.16安装延迟队列插件
安装过程 1:RabbitMQ 延迟插件GitHub 2:各版本地址 如我的MQ版本是3.8.16,那么根据提示下载的版本是: ①:移动插件到RabbitMQ的插件目录下,如我的位置是:/usr/li ...
- IKAnalyzer分词工具的spring boot项目整合代码版
简介 IK Analyzer是什么呢,一个很轻量的中文分词工具,是基于java开发的轻量级的中文分词工具包.它是以开源项目Luence为主体的,结合词典分词和文法分析算法的中文分词组件.IK有很多版本 ...