当前位置: 首页 > 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.lryc.cn/news/601264.html

相关文章:

  • HDFS基础命令
  • Python 列表推导式与生成器表达式
  • 3-基于FZ3B的Vitis AI DPU加速平台搭建
  • Vscode的常用快捷键(摆脱鼠标计划)
  • CodeBLEU:面向代码合成的多维度自动评估指标——原理、演进与开源实践
  • Jmeter的元件使用介绍:(七)后置处理器详解
  • 【NLP实践】一、中文短句情感二分类实现并提供RestfulApi服务调用
  • Mitk教程案例项目编译
  • Java AI面试实战:Spring AI与RAG技术落地
  • 【Qt开发】信号与槽(二)-> 信号和槽的使用
  • LeetCode第349题_两个数组的交集
  • UDS 0x29 身份验证服务 Authentication service
  • KNN 算法中的各种距离:从原理到应用
  • Java面试全攻略:Spring生态与微服务架构实战
  • 零基础 “入坑” Java--- 十四、字符串String
  • docker-desktop引擎启动失败报wsl --update
  • 数独求解器与生成器(回溯算法实现)
  • 一文读懂 JWT(JSON Web Token)
  • Spring Boot2错误处理
  • Android网络框架封装 ---> Retrofit + OkHttp + 协程 + LiveData + 断点续传 + 多线程下载 + 进度框交互
  • 【AI阅读】20250717阅读输入
  • Linux YUM 安装:高效管理软件包的利器
  • 白杨SEO:搜索引擎优化中的allintitle是什么指令?有哪些用处?
  • 8. 状态模式
  • 【最新版】防伪溯源一体化管理系统+uniapp前端+搭建教程
  • ACL原理和配置
  • 【element-ui】HTML引入本地文件出现font找不到/fonts/element-icons.woff
  • 【lucene】MMapDirectory 在FSDirectory基础上干了啥?
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博舆情分析实现
  • AI驱动的金融推理:Fin-R1模型如何重塑行业决策逻辑