Qt C++ GUI 函数参数速查手册:基础与布局

发布于:2025-07-31 ⋅ 阅读:(17) ⋅ 点赞:(0)

一:窗口与顶级属性 (Window & Top-Level Properties)

这部分函数,决定了“窗口”的整体风格和基础行为。

  1. setWindowFlags(Qt::WindowFlags flags)

    • flags: 一个或多个 Qt:: 枚举值的组合,用 | 连接。
    • 作用: 定义窗口的整体行为和外观(如无边框、置顶)。
    • 示例: setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); // 无边框且置顶。
  2. setWindowTitle(const QString &title)

    • title: 要显示的窗口标题文本。
    • 作用: 设置窗口标题栏的文字。
  3. setWindowIcon(const QIcon &icon)

    • icon: QIcon 对象,通常由资源路径创建。
    • 作用: 设置窗口标题栏和任务栏的图标。
    • 示例: setWindowIcon(QIcon(":/a/app_icon.png"));
  4. setStyleSheet(const QString &styleSheet)

    • styleSheet: 一个包含 QSS 代码的字符串。
    • 作用: 为控件和其子控件应用层叠样式表。
    • 示例: this->setStyleSheet("QDialog { background-color: #042739; }");
  5. show(): 显示窗口(非模态)。调用后,代码会继续往下执行。

  6. exec(): 显示模态对话框。窗口关闭前,代码会阻塞在此处,并返回一个结果(如 QDialog::Accepted)。

  7. close(): 关闭窗口。会触发一个 closeEvent,可以被拦截。


第二章:控件创建与配置 (Widget Creation & Configuration)
  1. new QLabel() / new QPushButton() / new QLineEdit(): 创建控件实例。

  2. setPixmap(const QPixmap &pixmap)

    • pixmap: 一个 QPixmap 图片对象。
    • 作用: 在 QLabel 上显示图片。
    • 链式调用: 常与 .scaled() 配合使用。
    • 示例: label->setPixmap(QPixmap(":/a/logo.png").scaled(64, 64, Qt::KeepAspectRatio));
  3. setFixedSize(int width, int height)

    • width, height: 固定的宽度和高度(像素)。
    • 作用: 锁定控件尺寸,禁止布局系统改变它。
  4. setEchoMode(QLineEdit::EchoMode mode)

    • mode: QLineEdit:: 枚举值,如 Password
    • 作用: 控制 QLineEdit 的文本回显方式。
    • 示例: setEchoMode(QLineEdit::Password); // 显示为密码黑点。
  5. setObjectName(const QString &name)

    • name: 一个在程序中唯一的字符串ID。
    • 作用: 为QSS的ID选择器 (#name) 提供目标,实现精准样式设置。

第三章:核心灵魂:布局管理 (Layout Management)

3.1 创建与应用

  1. QLayout(QWidget *parent)
    • parent: 指向要应用此布局的父控件的指针。
    • 作用: 创建布局并立即将其设置给 parent 控件。
    • 示例: QVBoxLayout* vLayout = new QVBoxLayout(this); // 为当前窗口设置垂直布局。

3.2 添加内容

  1. addWidget(QWidget *widget, int stretch = 0, Qt::Alignment alignment = {})

    • widget: 要添加的控件指针。
    • stretch: 【可选】伸展系数,0表示不伸展。
    • alignment: 【可选】此控件在布局单元格内的独立对齐方式。
  2. addLayout(QLayout *layout, int stretch = 0)

    • layout: 要嵌套的子布局指针。
    • stretch: 【可选】此子布局的整体伸展系数。
  3. addSpacing(int size)

    • size: 固定的空白区域大小(像素)。
    • 作用: 添加一个固定大小的、不可见的间距。
  4. addStretch(int stretch = 1)

    • stretch: 伸展系数,决定了它在分配额外空间时所占的比例
    • 作用: 添加一个可伸缩的“弹簧”,用于对齐和填充留白。

3.3 控制空间

  1. setSpacing(int spacing)

    • spacing: 布局内所有相邻项之间的统一间距(像素)。
  2. setContentsMargins(int left, int top, int right, int bottom)

    • left, top, right, bottom: 布局内容距离其四条边的距离(像素)。
  3. setAlignment(Qt::Alignment alignment)

    • alignment: Qt:: 枚举值,定义布局内所有项的整体对齐方式。
    • 作用: 控制宏观对齐。
    • 示例: mainLayout->setAlignment(Qt::AlignCenter); // 内部所有模块水平居中。

3.4 动态修改

  1. removeWidget(QWidget *widget)
    • widget: 要从布局中移除的控件指针。
    • 作用: 将控件从布局的管理中移除,但不会 delete 这个控件。移除后通常需要调用 widget->setParent(nullptr)widget->hide()


网站公告

今日签到

点亮在社区的每一天
去签到