#include <QObject>
#include <QDebug>
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);
源码
每个参数都是QSizePolicy::Policy
类型,这是一个枚举,包括了各种策略,如:
Fixed
(固定):小部件有一个固定大小,不能被调整。Minimum
(最小):小部件可以变大,但不可以比其大小提示小。Maximum
(最大):小部件可以变小,但不可以比其大小提示大。Preferred
(首选):小部件首选其大小提示的大小,但可以被缩小或扩展。Expanding
(扩展):小部件扩展以填充所有可用空间。常用三种
设置最大和最小尺寸
labelText
- 作为标签的文本。field
- 与标签相关联的字段小部件。addRow()
在新行中添加一个标签和一个小部件。标签通常用于描述或指示字段的目的。QFormLayout
的 insertRow()
函数用于在表单布局中的特定位置插入一行。这与 addRow()
函数相比,提供了更多的控制,允许你指定新行插入的确切位置。addRow()
函数总是在布局的末尾添加新行
在行号 row
处插入一个标签(文本为 labelText
)和一个字段小部件 field
&
符号前缀在字符串文字前,这通常意味着这个字符串会被用作快捷键。
index
- 布局中项的索引(从 0 开始)。index
个 QLayoutItem
的指针。如果索引超出范围,则返回 nullptr