Qt主窗囗类QMainwindow学习
文章目录
- 1. 简介
- 2. 构造函数
- 3. 布局
- 4. 成员函数
- 5. 代码示例
1. 简介
QMainWindow
类用于主窗口管理,窗口可包含菜单栏、工具栏中心窗口和状态栏等。
pro文件
QT+=widgets
头文件
#include<QMainWindow>
继承自QWidget
QWidget
:是所有用户界面对象的基类QMainWindow
:包含菜单栏、工具栏、中心窗口和状态栏的主窗口
2. 构造函数
QMainWindow::QMainWindow(QWidget *parent = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags()
)
参数:
parent
:如果是 nullptr
,则小部件将成为一个主窗口,否则小部件将成为 parent
内的子窗口删除其父窗口时,将删除他的小部件。
f
:由任何窗口标志的按位“或”组成的值。QMainWindow
设置标志Qt::Window
,因此将始终作为顶级触窗口小部件创建。
3. 布局
QMainWindow
拥有自己的布局,您可以添加菜单条 QMenuBar
状态条 QStatusBar
、工具条QToolBar
、停靠条QDockWidget
,中心区域可以放任意的控件,比如按钮,编辑框等。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-62l8DXYK-1620220941388)(C:\Users\tangx\AppData\Roaming\Typora\typora-user-images\image-20210505211358156.png)]
4. 成员函数
成员函数 | 用法 |
---|---|
setMenuBar
|
设置菜单条 |
addToolBar
|
添加工具条 |
addDockWidget
|
添加停靠窗口 |
setStatusBar
|
设置状态条 |
setCentralWidget
|
设置中心区域窗口 |
createPopupMenu
|
创建弹出菜单 |
splitDockWidget
|
将停靠区域分割为两块并放置两个停靠区 |
setTabPosition
|
设置给定的停靠小部件区域的标签位置 |
5. 代码示例
#include <QApplication>
#include <QMainWindow>
#include <QDebug>
#include <QMenuBar>
#include <QToolBar>
#include <QStatusBar>
#include <QLabel>
#include <QDockWidget>int main(int argc, char *argv[])
{QApplication a(argc, argv);QMainWindow w;//调整客户区的大小w.resize(800,500);//设置整个窗口的背景色QPalette pal=w.palette();pal.setColor(QPalette::Background, Qt::red);w.setPalette(pal);//设置菜单条(一个)QMenuBar menuBar(&w);menuBar.addMenu("菜单1");w.setMenuBar(&menuBar);//添加工具条(多个)QToolBar toolBar(&w);toolBar.setStyleSheet("background-color:#FFFF00");w.addToolBar(&toolBar);//设置状态条(一个)QStatusBar statusBar(&w);statusBar.addWidget(new QLabel("这是状态栏"));statusBar.setStyleSheet("background-color:#FF00FF");w.setStatusBar(&statusBar);//停靠条QDockWidget dock("Dock1",&w);dock.setStyleSheet("background-color:#00FFFF");//设置停靠区背景色dock.setWidget(new QWidget());//设置停靠区的窗口dock.setFixedSize(200,300);//设置停靠区大小//设置可以移动,可关闭停靠区dock.setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);//设置可以左右停靠区dock.setAllowedAreas(Qt::AllDockWidgetAreas);//添加停靠条(多个)w.addDockWidget(Qt::RightDockWidgetArea,&dock);//设置centralWidget的背景色QWidget centralWidget(&w);//使用样式表来设定外观centralWidget.setStyleSheet("background-color:#00FF00");//设置中心区域窗口w.setCentralWidget(¢ralWidget);//显示主窗口w.show();return a.exec();
}
运行效果:
Qt主窗囗类QMainwindow学习相关推荐
- python PyQt5 QMainWindow类(Qt主窗口框架,主窗口提供了用于构建应用程序用户界面的框架)
https://doc.qt.io/qtforpython/PySide2/QtWidgets/QMainWindow.html?highlight=qmainwindow#PySide2.QtWid ...
- Qt扫盲-QDir类的学习和使用
Qt5的QDir类的学习 文章目录 Qt5的QDir类的学习 概述: 相对路径与绝对路径 相对性判断 存在性判断 相对路径转绝对路径 导航和路径操作 获取和设置QDir的值 切换路径 新建删除重命名文 ...
- linux 界面工具 qt,Qt主窗口中的工具栏
工具栏类 QToolBar 快捷项 QAcitonQToolBar* tb = addToolBar("Tool Bar");//addToolBar是Qt主窗口的成员函数,在主窗 ...
- QT 009 QSqlDatabase 数据库类的使用
前言:本文对QT的构建数据库连接类的帮助文件做了一点小结,可以看作是翻译吧: Qt 5.9 Qt SQL C++ Classes QSqlDatabase Qt 5.9.0 Reference Doc ...
- Qt使用第三方串口类qextserialport无法打开串口的可能解决方案(文章中描述的可以解决)
我前面的博客提到了,在我的笔记本电脑中用QT的第三方串口类QextSerilPort打不开串口,今天终于解决了,下面简单分享一下: 先说下环境:我用的是QT4.8.0,每三方的串口类QextSeria ...
- C++类基础学习(1)
类基础学习(C++) 题录:作者是个博客小萌新,C++已学习了一段时间,做过几个小项目(VS+qt的),但都很简单,在深入学习时,发现但个人缺少系统的总结以及整体知识框架的构建,所以准备通过CSDN这 ...
- Qt中使用QUdpSocket类实现UDP通信
UDP 通信介绍 UDP(User Datagram Protocol,用户数据报协议) UDP是一个轻量级.不可靠.面向数据报的.无连接的传输层协议,多用于可靠性要求不严格,不是非常重要的传输,如直 ...
- String类的学习
String类的学习: String a="a"+"b"+"1"; String b="ab1"; a==b是对的,为什 ...
- TS基础2(类)-学习笔记
文章目录 TS基础2(类)-学习笔记 class类 类的继承 修饰符 类的类型.实现接口 TS基础2(类)-学习笔记 class类 //类 class//首字母大写//类(Class):定义了一件事物 ...
最新文章
- Apache的Commons Lang和BeanUtils
- 【题解】洛谷P1541 [NOIP2010TG] 乌龟棋(类似背包的DP)
- javaweb连接不上mysql怎么办_java web应用连接mysql会突然connection连接失败
- linux 网络dma驱动,S3C2410的Linux下DMA驱动程序开发
- qq代理服务器哪里获取_哪里可以下载小学英语课件?这3个渠道,英语老师得赶快收藏...
- origin使用指导。pdf_获取所有的最高法指导性案例并保存为pdf
- Linux怎么查看编译ARM平台程序的编译器arm-linux-gcc
- java环境问题_1_JAVA语言的特点及配置环境问题
- Python 操作谷歌浏览器
- stm32 系统进入stop模式_STM32开发笔记78: 2种STOP模式的唤醒方法
- 蛋白质二级结构预测-Chou-Fasman预测方法
- sails mysql_Sails+MVC+Mysql+Node+学习笔记一
- PMBOK第六版工具与技术:数据收集数据分析数据表现
- 收不到验证码怎么办?
- 'CALayer position contains NaN: [nan nan]'异常
- LibcSearcher找不到合适的libc(更新到python3版本Libc)
- 打出一个e^x的图像
- Mac Pro 软件收藏
- 用 leangoo进行自我账目管理
- 【附源码】计算机毕业设计JAVA教学质量评价系统
热门文章
- 高校人员信息管理系统(Python版)
- char ch= 中 什么意思java_在 Java 语言中定义了如下变量: char ch; 下列赋值语句正确的是_韩语初下答案_学小易找答案...
- matlab画图——地图背景
- Java多人视频通信(不定时更新)
- springboot请求注解的使用Get/Post
- 2019 春季实习生招聘之项目介绍
- 西北工业大学NOJ-Python程序设计作业81-90
- 一分钟了解大数据的价值
- 如何在Java中将GIF图像转换为PNG等图像格式?试试Aspose
- Revit二次开发—获取并修改指定标高