当前位置: 首页 > news >正文

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


一:窗口与顶级属性 (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()

http://www.dtcms.com/a/301432.html

相关文章:

  • Android 调试桥 (adb) 基础知识点
  • 通过knn算法实现识别数字
  • 【n8n教程笔记——工作流Workflow】文本课程(第一阶段)——5.4 计算预订订单数量和总金额 (Calculating booked orders)
  • nacos连接失败,启动失败常见问题
  • OpenCV-图像预处理③【图像梯度计算、边缘检测算法(如 Canny)、轮廓提取与分析、凸包特征检测,以及 轮廓的外接几何特征(如最小外接矩形、外接圆等)】
  • 硅基计划3.0 学习总结 肆 二叉树 初版
  • [每周一更]-(第148期):使用 Go 进行网页抓取:Colly 与 Goquery 的对比与思路
  • QT---概览
  • 优化Linux高并发:文件描述符与端口范围的协同调优
  • SPSC无锁环形队列技术(C++)
  • FreeRTOS—空闲任务
  • 【Python系列】Flask 应用中的主动垃圾回收
  • idea打开后project窗口未显示项目名称的解决方案
  • LangGraph快速入门项目部署
  • C++ 中实现 `Task::WhenAll` 和 `Task::WhenAny` 的两种方案
  • 从0搭建YOLO目标检测系统:实战项目+完整流程+界面开发(附源码)
  • jenkins只能运行2个任务,提示:“等待下一个可用的执行器”
  • Redis C++客户端——命令使用
  • 实战演练1:实战演练之命名实体识别
  • Docker 的数据持久化-数据卷
  • (AC)架子鼓
  • 基于Java的KTV点歌系统的设计与实现
  • 【CF】Day112——杂题 (逆向思维 | 二分 + 贪心 | 单调队列优化DP | 二进制 + 前缀和 | 二分图判断 | 暴力枚举)
  • JavaEE--3.多线程
  • python-装饰器
  • 【ST表、倍增】P7167 [eJOI 2020] Fountain (Day1)
  • QT6 源,七章对话框与多窗体(15)多文档 MDI 窗体 QMdiArea 篇一:属性,公共成员函数,信号与槽函数
  • 多智能体架构
  • 《计算机组成原理与汇编语言程序设计》实验报告四 Debug及指令测试
  • setnonblocking函数用途和使用案例