QLayout布局器QObject子节点遍历

遍历QObject的子节点

QLayout布局器QObject子节点遍历_第1张图片

QLayout布局器QObject子节点遍历_第2张图片

#include 
#include 

void printObjectTree(const QObject *object, int level = 0) {
    if (!object) return;

    // 创建缩进字符串,用于表示层级
    QString indent(level * 2, ' '); 

    // 打印对象的类名和对象名
    qDebug() << indent << object->metaObject()->className() << object->objectName();

    // 递归遍历所有子对象
    const QObjectList &children = object->children();
    for (const QObject *child : children) {
        printObjectTree(child, level + 1);
    }
}

// 使用示例
// 假设有一个 QObject 的实例,名为 root
printObjectTree(root);

布局Layout

QLayout布局器QObject子节点遍历_第3张图片

QLayout布局器QObject子节点遍历_第4张图片

源码

QLayout布局器QObject子节点遍历_第5张图片

尺寸策略

QLayout布局器QObject子节点遍历_第6张图片

QLayout布局器QObject子节点遍历_第7张图片

QLayout布局器QObject子节点遍历_第8张图片

QLayout布局器QObject子节点遍历_第9张图片

  • left: 小部件左侧的边距宽度。
  • top: 小部件顶部的边距宽度。
  • right: 小部件右侧的边距宽度。
  • bottom: 小部件底部的边距宽度。

QLayout布局器QObject子节点遍历_第10张图片

  • horizontal: 水平方向的大小策略。
  • vertical: 垂直方向的大小策略。

每个参数都是QSizePolicy::Policy类型,这是一个枚举,包括了各种策略,如:

  • Fixed(固定):小部件有一个固定大小,不能被调整。
  • Minimum(最小):小部件可以变大,但不可以比其大小提示小。
  • Maximum(最大):小部件可以变小,但不可以比其大小提示大。
  • Preferred(首选):小部件首选其大小提示的大小,但可以被缩小或扩展。
  • Expanding(扩展):小部件扩展以填充所有可用空间。

常用三种

QLayout布局器QObject子节点遍历_第11张图片

设置最大和最小尺寸

QLayout布局器QObject子节点遍历_第12张图片

QLayout布局器QObject子节点遍历_第13张图片

常用接口

QLayout布局器QObject子节点遍历_第14张图片

QLayout布局器QObject子节点遍历_第15张图片

QFormLayout

QLayout布局器QObject子节点遍历_第16张图片

QLayout布局器QObject子节点遍历_第17张图片

  • 参数:
    • labelText - 作为标签的文本。
    • field - 与标签相关联的字段小部件。
  • 用法: 这种形式的 addRow() 在新行中添加一个标签和一个小部件。标签通常用于描述或指示字段的目的。

QLayout布局器QObject子节点遍历_第18张图片

QLayout布局器QObject子节点遍历_第19张图片QFormLayoutinsertRow() 函数用于在表单布局中的特定位置插入一行。这与 addRow() 函数相比,提供了更多的控制,允许你指定新行插入的确切位置。addRow() 函数总是在布局的末尾添加新行

在行号 row 处插入一个标签(文本为 labelText)和一个字段小部件 field

& 符号前缀在字符串文字前,这通常意味着这个字符串会被用作快捷键。

  • 参数: index - 布局中项的索引(从 0 开始)。
  • 返回值: 返回一个指向布局中第 indexQLayoutItem 的指针。如果索引超出范围,则返回 nullptr

你可能感兴趣的:(qt,开发语言)