QT C++开发知识点剖析

一、QWidget、QDialog,QMainWindow 区别

通俗易懂的区分

QWidget 是积木
QDialog 是弹窗
QMainWindow 是房子

1、QWidget ------「最基础的积木」

(1)通俗理解

QWidget 就是一块界面积木,按钮是QWidget,输入框是QWidget,一个页面也是QWidget。

只要能显示在屏幕上的东西,基本都是QWidget。

没有父窗口 → 它就是一个独立窗口

有父窗口 → 它就是窗口里的一个控件

它既能当"窗口",也能当"控件"

(2)总结

QWidget = 万能界面零件

2、QDialog ------「专门干一件事的弹窗」

(1)通俗理解

QDialog 就是弹出来让你做一件事的窗口,通常用于:登录,参数设置,文件选择等

分为模态和非模态状态

模态对话框:你不把这个弹窗处理完,别的都不能点(登录窗口、参数设置、文件选择)

非模块对话框:弹出来,但你还能继续用主界面(帮助窗口等)

它既能当"窗口",也能当"控件"

(2)总结

QDialog = 办完事就走的弹窗或者提示窗口

3、QMainWindow ------「应用程序的主房子」

(1)通俗理解

QMainWindow 就是整个程序的主壳子,通常具备:菜单栏,工具栏,状态栏等

(2)总结

QMainWindow = 正式应用程序的主框架

4、对比

|-----------------|--------|-----------|
| 类名 | 理解 | 典型用途 |
| QWidget | 积木 | 页面、模块 |
| QDialog | 弹窗 | 登录、设置 |
| QMainWindow | 房子 | 主界面 |

二、GroupBox添加布局和窗体添加布局的区别

通俗易懂的区分

GroupBox只管自己内部(也就是局部)
窗体管全局

1、布局的功能

当窗口大小变化时,自动调整控件大小和位置,包括控件之间的间距、对齐等,从而保持整个界面的美观。

当没有布局时:控件绝对位置和大小不随窗口变化而变化,一旦拉伸窗口,会很丑。

**2、**GroupBox添加布局

对象:GroupBox 内部

它只负责:GroupBox 里面的控件怎么排

GroupBox 的布局不会影响窗口整体结构,当更改GroupBox 大小时,其内部组件都会自动改变大小。但是当改变窗体大小时,界面上的各组件却并不会自动改变大小。

3、窗体添加布局

对象:centralWidget / Form

它负责的是:整个窗口的总布局,与主窗口想比,其它控件均可以看做积木。最终负责二级积木的排版。

为窗体指定一个总的布局(即窗体布局),这样布局后,当窗体大小改变时,各个组件都会自动改变大小。

相关推荐
叠层归一研究院14 分钟前
AGI 系统(八):符号范畴嵌入函子 — SymCat ↪ C_M107 严格化
c语言·开发语言·人工智能·算法·transformer·agi
明朝百晓生26 分钟前
Deep RL learning[2026/8]
开发语言·javascript·人工智能
weixin-a153003083161 小时前
python-装饰器
开发语言·python
我的xiaodoujiao1 小时前
快速学习Python基础知识详细图文教程17--类型注解和断点调试
开发语言·python·学习·测试工具
leoZ2313 小时前
AI 辅助开发的五道坎
开发语言·人工智能·视觉检测·bert·php·超分辨率重建·openvino
会周易的程序员4 小时前
aiDgePLC — IEC61131-3 ST PLC 虚拟机调试与运行环境
c++·物联网·虚拟机·st·工业协议·iec61131·梯形图
程序员老陆4 小时前
Qt的QThread::usleep和FFmpeg的libavutil模块的av_usleep哪个精度高一些?
开发语言·qt·ffmpeg·音视频
2601_963869954 小时前
【计算机毕业设计】基于Java的相框定制系统的设计与实现
java·开发语言·课程设计
名字还没想好☜5 小时前
Go 的 unsafe.Pointer 实战:零拷贝 []byte↔string 转换与三条铁律
开发语言·后端·golang·go·unsafe
Quz5 小时前
QML TextArea 入门(二):富文本与换行模式
qt