Qt创建窗口选择的三个父类介绍 ----- QWidget、QMainWindow、QDialog
QWidget类
简介
QWidget是Qt中所有用户界面元素的基类。它提供了窗口的基本功能,并允许用户自定义窗口的外观和行为。QWidget可以包含其他QWidget子类的子窗口,从而实现复杂的用户界面。
特性
- 提供了窗口的基本功能,包括绘制、事件处理、布局管理等。
- 支持窗口的样式定制,可以通过样式表实现窗口的个性化外观。
- 可以设置窗口的标题、图标、大小和位置等属性。
- 支持窗口的布局管理,可以使用布局管理器来自动布局窗口中的子部件。
- 支持窗口的事件处理,可以处理鼠标事件、键盘事件、定时器事件等。
主要接口
QWidget(QWidget *parent = nullptr):构造函数,用于创建QWidget对象。void setWindowTitle(const QString &title):设置窗口的标题。void setGeometry(int x, int y, int width, int height):设置窗口的位置和大小。void resize(int width, int height):重新设置窗口的大小。void move(int x, int y):移动窗口到指定位置。void show():显示窗口。void hide():隐藏窗口。void close():关闭窗口。void setLayout(QLayout *layout):设置窗口的布局管理器。void setStyleSheet(const QString &styleSheet):设置窗口的样式表。
示例
#include <QWidget>
#include <QVBoxLayout>
#include <QPushButton>int main(int argc, char *argv[]) {QApplication app(argc, argv);// 创建一个QWidget对象作为主窗口QWidget mainWindow;// 创建一个垂直布局管理器QVBoxLayout layout(&mainWindow);// 创建一个按钮QPushButton button("Click me");// 将按钮添加到布局管理器中layout.addWidget(&button);// 设置主窗口的布局mainWindow.setLayout(&layout);// 设置窗口的标题mainWindow.setWindowTitle("Main Window");// 显示主窗口mainWindow.show();return app.exec();
}
总结
QWidget是Qt中所有用户界面元素的基类,提供了窗口的基本功能,并允许用户自定义窗口的外观和行为。通过QWidget,可以方便地创建和管理用户界面,实现丰富的交互体验。
QMainWindow类
简介
QMainWindow是Qt中用于创建应用程序主窗口的特殊窗口类。它提供了丰富的布局和功能,包括菜单栏、工具栏、状态栏等,用于创建应用程序的主界面。
特性
- 提供了应用程序的主要框架,包括菜单栏、工具栏和状态栏等。
- 可以设置中心窗口部件,并自由布局其他子部件。
- 支持自定义窗口的外观和行为,可以设置窗口的标题、图标、大小和位置等属性。
- 支持窗口的样式定制,可以通过样式表实现窗口的个性化外观。
主要接口
QMainWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()):构造函数,用于创建QMainWindow对象。void setCentralWidget(QWidget *widget):设置中心窗口部件。void setMenuBar(QMenuBar *menuBar):设置菜单栏。void addToolBar(QToolBar *toolbar):添加工具栏。void setStatusBar(QStatusBar *statusBar):设置状态栏。void setWindowTitle(const QString &title):设置窗口的标题。void setWindowIcon(const QIcon &icon):设置窗口的图标。
示例
#include <QApplication>
#include <QMainWindow>
#include <QPushButton>int main(int argc, char *argv[]) {QApplication app(argc, argv);// 创建一个QMainWindow对象QMainWindow mainWindow;// 创建一个按钮QPushButton *button = new QPushButton("Click me", &mainWindow);// 将按钮添加到中心窗口部件mainWindow.setCentralWidget(button);// 设置窗口的标题mainWindow.setWindowTitle("Main Window");// 显示主窗口mainWindow.show();return app.exec();
}
总结
QMainWindow是Qt中用于创建应用程序主窗口的特殊窗口类,提供了丰富的布局和功能,用于创建应用程序的主界面。通过QMainWindow,可以方便地创建和管理主界面的各个部件,实现功能丰富的用户界面。
QDialog 类
简介
QDialog 是 Qt 中用于显示对话框的类,它提供了一种简单的方法来创建模态对话框和非模态对话框。对话框通常用于与用户进行交互,如显示消息、获取输入、进行设置等。
特性
- 支持模态和非模态对话框。
- 可以设置对话框的标题、图标、大小和位置等属性。
- 提供了丰富的内置对话框类型,如消息框、文件对话框、颜色选择对话框等。
- 允许用户自定义对话框的内容和行为。
主要接口
QDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::Dialog):构造函数,用于创建一个对话框对象。void setWindowTitle(const QString &title):设置对话框的标题。void setModal(bool modal):设置对话框是否为模态对话框。void setSizeGripEnabled(bool enabled):设置对话框是否显示大小调整手柄。void accept():关闭对话框并发出 accept() 信号,通常表示用户接受对话框的内容。void reject():关闭对话框并发出 reject() 信号,通常表示用户取消或拒绝对话框的内容。
示例
#include <QApplication>
#include <QDialog>
#include <QVBoxLayout>
#include <QPushButton>int main(int argc, char *argv[]) {QApplication app(argc, argv);// 创建一个对话框对象QDialog dialog;// 创建一个垂直布局管理器QVBoxLayout layout(&dialog);// 创建两个按钮QPushButton *okButton = new QPushButton("OK");QPushButton *cancelButton = new QPushButton("Cancel");// 将按钮添加到布局管理器中layout.addWidget(okButton);layout.addWidget(cancelButton);// 连接按钮的点击事件到对话框的 accept() 和 reject() 槽函数QObject::connect(okButton, &QPushButton::clicked, &dialog, &QDialog::accept);QObject::connect(cancelButton, &QPushButton::clicked, &dialog, &QDialog::reject);// 设置对话框的标题dialog.setWindowTitle("Dialog");// 显示对话框dialog.exec();return app.exec();
}
总结
QDialog 是 Qt 中用于显示对话框的类,它提供了方便的方法来创建和管理对话框,以及与用户进行交互。通过 QDialog,可以轻松地实现各种对话框,包括消息框、文件对话框、颜色选择对话框等,从而丰富了应用程序的功能和用户体验。
相关文章:
Qt创建窗口选择的三个父类介绍 ----- QWidget、QMainWindow、QDialog
QWidget类 简介 QWidget是Qt中所有用户界面元素的基类。它提供了窗口的基本功能,并允许用户自定义窗口的外观和行为。QWidget可以包含其他QWidget子类的子窗口,从而实现复杂的用户界面。 特性 提供了窗口的基本功能,包括绘制、事件处理、…...
论文翻译 - Defending Against Alignment-Breaking Attacks via Robustly Aligned LLM
论文链接:https://arxiv.org/pdf/2309.14348.pdf Defending Against Alignment-Breaking Attacks via Robustly Aligned LLM Abstract1 Introduction2 Related Works3 Our Proposed Method3.1 Threat Model3.2 Our Proposed Method3.3 Practical Designs3.4 Theoret…...
Kafka总结问题
Kafka Kafka Kafka Kafka的核心概念/ 结构 topoic Topic 被称为主题,在 kafka 中,使用一个类别属性来划分消息的所属类,划分消息的这个类称为 topic。topic 相当于消息的分配标签,是一个逻辑概念。主题好比是数据库的表࿰…...
【RPG Maker MV 仿新仙剑 战斗场景UI (八)】
RPG Maker MV 仿新仙剑 战斗场景UI 八 状态及装备场景代码效果 状态及装备场景 本计划在战斗场景中直接制作的,但考虑到在战斗场景中加入太多的窗口这不太合适,操作也繁琐,因此直接使用其他场景。 代码 Pal_Window_EquipStatus.prototype.…...
【PyQt】18 -菜单等顶层操作
顶层界面的使用 前言一、菜单栏1.1 代码1.2 运行结果 二、工具栏2.1 代码几种显示方法 2.2 运行结果 三、状态栏3.1 代码3.2 运行结果 总结 前言 1、介绍顶层菜单栏目的使用,但没有陆续绑定槽函数。 2、工具栏 3、状态栏 一、菜单栏 1.1 代码 #Author :…...
线性代数基础概念和在AI中的应用
基本概念 线性代数是数学的一个分支,专注于向量、向量空间(也称为线性空间)、线性变换和矩阵的研究。这些概念在数据科学、人工智能、工程学和物理学等多个领域都有广泛应用。以下是这些基本概念的详细解释和它们在数据处理和AI中的应用。 …...
elasticsearch _cat/indices docs.count is different than <index>/_count
今天遇到一个问题,kibana中看到文档数与下面语句查询到的不同 GET /_cat/count/jiankunking_xxxxx_product_expand_test?v GET /jiankunking_xxxxx_product_expand_test/_search?track_total_hitstrue语句查询结果 epoch timestamp count 1711433785 06:16…...
关系型数据库mysql(7)sql高级语句
目录 一.MySQL常用查询 1.按关键字(字段)进行升降排序 按分数排序 (默认为升序) 按分数升序显示 按分数降序显示 根据条件进行排序(加上where) 根据多个字段进行排序 编辑 2.用或(or&…...
计算机网络——网络基础1
网络基础一 1.初识网络 网卡也是一种文件,所以对于网络的编程也是一种文件操作; 早期由于不同的计算机之间要根据数据进行协作,但是计算机之间是独立的,所以使用了光驱或者软盘之类的进行协作;对于将计算机连…...
ERDUnet: An Efficient Residual Double-codingUnet for Medical Image Segmentation
ERDUnet:一种用于医学图像分割的高效残差双编码单元 摘要 医学图像分割在临床诊断中有着广泛的应用,基于卷积神经网络的分割方法已经能够达到较高的准确率。然而,提取全局上下文特征仍然很困难,而且参数太大,无法临床应用。为此,我们提出了一种新的网络结构来改进传统的…...
vue响应式基础
声明响应式状态 ref() 在组合式 API 中,推荐使用 ref() 函数来声明响应式状态: import { ref } from vueconst count ref(0) ref() 接收参数,并将其包裹在一个带有 .value 属性的 ref 对象中返回: const count ref(0)c…...
每天上万简历,录取不到1%!阿里腾讯的 offer 都给了哪些人?
三月天杨柳醉春烟~正是求职好时节~ 与去年秋招的冷淡不同,今年春招市场放宽了许多,不少企业纷纷抛出橄榄枝,各大厂的只差把“缺人”两个字写在脸上了。 字节跳动技术方向开放数10个类型岗位,研发需求占比60%,非研发新增…...
外包干了20天,技术退步明显.......
先说一下自己的情况,大专生,21年通过校招进入杭州某软件公司,干了接近2年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了2年的功能测试…...
4核8G云服务器,阿里云要多少钱?
阿里云4核8G服务器优惠价格955元一年,配置为ECS通用算力型u1实例(ecs.u1-c1m2.xlarge)4核8G配置、1M到3M带宽可选、ESSD Entry系统盘20G到40G可选,CPU采用Intel(R) Xeon(R) Platinum处理器,阿里云活动链接 aliyunfuwuq…...
数学分析复习:振荡型级数的收敛判别
文章目录 振荡型级数的收敛判别 本篇文章适合个人复习翻阅,不建议新手入门使用 振荡型级数的收敛判别 直观上,振荡型级数说的是级数各项有正有负,求和的时候可以相互抵消,故可能收敛 命题:Abel求和公式 设复数列 { …...
阿里CICD流水线Docker部署,将阿里镜像私仓中的镜像部署到服务器中
文章目录 阿里CICD流水线Docker部署,将阿里镜像私仓中的镜像部署到服务器中一、CICD流水线的初步使用可以看我之前的两篇文章二、添加部署任务,进行Docker部署,创建一个阿里的试用主机1、选择主机部署,并添加服务主机2、创建免费体…...
并发VS并行
参考文章 面试必考的:并发和并行有什么区别? 并发:一个人同时做多件事(射击游戏队友抢装备) 并行:多人同时处理同一件事(射击游戏敌人同时射击对方)...
C语言经典例题(8) --- 进制A+B、网购、及格分数、最高分数、计算一元二次方程
文章目录 1.进制AB2.网购3.及格分数4.最高分数5.计算一元二次方程 1.进制AB 题目描述: 输入一个十六进制数a,和一个八进制数b,输出ab的十进制结果(范围-231~231-1)。 输入描述: 一行,一个十六…...
两区域二次调频风火机组,麻雀启发式算法改进simulink与matlab联合
区域1结果 区域2结果 红色曲线为优化后结果〔风火机组二次调频〕...
自动驾驶国际标准ISO文件
Coordinate system:Road vehicles — Vehicle dynamics and road-holding ability — Vocabulary...
销售易发布AI原生CRM NeoAgent 2.0,引领行业迈入AI CRM 2.0时代
3月27日,在2026腾讯云城市峰会首站上海站,腾讯旗下CRM销售易重磅发布新一代营销服全场景AI原生CRM——NeoAgent 2.0。这不仅是产品迭代,更是销售易基于全新架构打造的智能体产品矩阵,标志着CRM开始从“管理工具”向“企业数字员工…...
从FasterRCNN到自定义检测器:SimpleDet扩展开发完全手册
从FasterRCNN到自定义检测器:SimpleDet扩展开发完全手册 【免费下载链接】simpledet A Simple and Versatile Framework for Object Detection and Instance Recognition 项目地址: https://gitcode.com/gh_mirrors/si/simpledet SimpleDet是一个简单且多功能…...
如何通过智能求职助手提升职位时间筛选效率?揭秘高效求职新方法
如何通过智能求职助手提升职位时间筛选效率?揭秘高效求职新方法 【免费下载链接】boss-show-time 展示boss直聘岗位的发布时间 项目地址: https://gitcode.com/GitHub_Trending/bo/boss-show-time 在当今竞争激烈的就业市场中,职位时间筛选已成为…...
舰艇推进电机供电流程优化方案
舰艇推进电机供电流程优化方案 第一章 绪论 1.1 背景与意义 现代舰艇(如驱逐舰、潜艇、全电推进船舶)广泛采用综合电力系统。传统的供电流程中,推进电机作为最大的非线性负载,其负载突变(如急加速、倒车、波浪冲击导致的螺旋桨甩尾)会通过直流母线回馈至发电机组,导致…...
2026.3.31 TRO成功和解案例 案件号:25-cv-25717,1000美金和解Palmer律所3000美金索赔,沃尔玛店铺全额解冻!
TRO经典案例案件概述案件号:25-cv-25717(点击查看案件详情)案件时间:2025-12-8收到TRO时间:2025-12-20销售平台:沃尔玛冻结金额:$209美金Palmer律所索赔额:$3,000美金侵权产品销售量…...
M2LOrder模型在STM32项目中的潜在应用:边缘设备情绪反馈
M2LOrder模型在STM32项目中的潜在应用:边缘设备情绪反馈 最近在捣鼓一个基于STM32的智能硬件项目,想给它加点“人情味”。比如,当用户对它说话时,它能感知到用户的情绪是开心还是沮丧,并给出更贴切的反馈。这听起来很…...
Sketch Measure: 设计标注自动化的创新实践
Sketch Measure: 设计标注自动化的创新实践 【免费下载链接】sketch-measure Make it a fun to create spec for developers and teammates 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-measure 在数字化产品开发流程中,设计稿到代码实现的转化始终…...
除了阿里云,还有哪些靠谱的身份证实名认证方案?SpringBoot整合横向评测
SpringBoot整合主流身份证实名认证API横向评测:从阿里云到多服务商技术选型指南 当你的应用需要接入身份证实名认证功能时,阿里云可能只是众多选项中的一个起点。作为技术决策者,如何在腾讯云、百度智能云、聚合数据等众多服务商中做出最优选…...
UDS诊断自动化测试入门:用Python模拟Tester端,批量刷写DID与安全访问
UDS诊断自动化测试实战:Python构建高覆盖率ECU测试框架 在汽车电子控制单元(ECU)开发中,诊断功能测试往往是最耗时的手工操作环节之一。想象一下,当需要验证数百个数据标识符(DID)的读写功能时&…...
TPAMI 2026 | 跨十大数据集验证,PoundNet重新审视AI图像检测范式
随着 AI 生成图像技术快速演进,伪造内容在网络传播风险持续上升,高鲁棒性检测技术因此成为学界与产业界关注的关键问题。然而,现有不少方法过于追求单一数据集上的短期收益,往往仅围绕“真/假”二分类目标对大规模预训练模型进行专…...
