一:窗口与顶级属性 (Window & Top-Level Properties)
这部分函数,决定了“窗口”的整体风格和基础行为。
-
setWindowFlags(Qt::WindowFlags flags)flags: 一个或多个Qt::枚举值的组合,用|连接。- 作用: 定义窗口的整体行为和外观(如无边框、置顶)。
- 示例:
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);// 无边框且置顶。
-
setWindowTitle(const QString &title)title: 要显示的窗口标题文本。- 作用: 设置窗口标题栏的文字。
-
setWindowIcon(const QIcon &icon)icon:QIcon对象,通常由资源路径创建。- 作用: 设置窗口标题栏和任务栏的图标。
- 示例:
setWindowIcon(QIcon(":/a/app_icon.png"));
-
setStyleSheet(const QString &styleSheet)styleSheet: 一个包含 QSS 代码的字符串。- 作用: 为控件和其子控件应用层叠样式表。
- 示例:
this->setStyleSheet("QDialog { background-color: #042739; }");
-
show(): 显示窗口(非模态)。调用后,代码会继续往下执行。 -
exec(): 显示模态对话框。窗口关闭前,代码会阻塞在此处,并返回一个结果(如QDialog::Accepted)。 -
close(): 关闭窗口。会触发一个closeEvent,可以被拦截。
第二章:控件创建与配置 (Widget Creation & Configuration)
-
new QLabel()/new QPushButton()/new QLineEdit(): 创建控件实例。 -
setPixmap(const QPixmap &pixmap)pixmap: 一个QPixmap图片对象。- 作用: 在
QLabel上显示图片。 - 链式调用: 常与
.scaled()配合使用。 - 示例:
label->setPixmap(QPixmap(":/a/logo.png").scaled(64, 64, Qt::KeepAspectRatio));
-
setFixedSize(int width, int height)width,height: 固定的宽度和高度(像素)。- 作用: 锁定控件尺寸,禁止布局系统改变它。
-
setEchoMode(QLineEdit::EchoMode mode)mode:QLineEdit::枚举值,如Password。- 作用: 控制
QLineEdit的文本回显方式。 - 示例:
setEchoMode(QLineEdit::Password);// 显示为密码黑点。
-
setObjectName(const QString &name)name: 一个在程序中唯一的字符串ID。- 作用: 为QSS的ID选择器 (
#name) 提供目标,实现精准样式设置。
第三章:核心灵魂:布局管理 (Layout Management)
3.1 创建与应用
QLayout(QWidget *parent)parent: 指向要应用此布局的父控件的指针。- 作用: 创建布局并立即将其设置给
parent控件。 - 示例:
QVBoxLayout* vLayout = new QVBoxLayout(this);// 为当前窗口设置垂直布局。
3.2 添加内容
-
addWidget(QWidget *widget, int stretch = 0, Qt::Alignment alignment = {})widget: 要添加的控件指针。stretch: 【可选】伸展系数,0表示不伸展。alignment: 【可选】此控件在布局单元格内的独立对齐方式。
-
addLayout(QLayout *layout, int stretch = 0)layout: 要嵌套的子布局指针。stretch: 【可选】此子布局的整体伸展系数。
-
addSpacing(int size)size: 固定的空白区域大小(像素)。- 作用: 添加一个固定大小的、不可见的间距。
-
addStretch(int stretch = 1)stretch: 伸展系数,决定了它在分配额外空间时所占的比例。- 作用: 添加一个可伸缩的“弹簧”,用于对齐和填充留白。
3.3 控制空间
-
setSpacing(int spacing)spacing: 布局内所有相邻项之间的统一间距(像素)。
-
setContentsMargins(int left, int top, int right, int bottom)left,top,right,bottom: 布局内容距离其四条边的距离(像素)。
-
setAlignment(Qt::Alignment alignment)alignment:Qt::枚举值,定义布局内所有项的整体对齐方式。- 作用: 控制宏观对齐。
- 示例:
mainLayout->setAlignment(Qt::AlignCenter);// 内部所有模块水平居中。
3.4 动态修改
removeWidget(QWidget *widget)widget: 要从布局中移除的控件指针。- 作用: 将控件从布局的管理中移除,但不会
delete这个控件。移除后通常需要调用widget->setParent(nullptr)或widget->hide()。
5514

被折叠的 条评论
为什么被折叠?



