Qt - QObject设置对象名称和设置属性
一、设置对象名
作用:假如有很多个同样的QLabel控件,可以使用setObjectname()函数来绑定一个值,相当于给按钮设置一个唯一id,方便后续获取。获取函数可以用findChild()
setObjectName()
函数描述:用来设置对象的名字,不同对象可以重复
label = QLabel()
label.setObjectName("label")
objectName()
函数描述:获取对象的名字
QString strobj = this->objectName();
qDebug()<<"strobj = "<<strobj;
findChild()
函数描述:通过父部件来查找孩子
函数原型:
//通过父部件来 -“查找孩子”。
T QObject::findChild(const QString & name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
查找选项 枚举Qt::FindChildOption:
Qt::FindChildOptions是一个QFlags<FindChildOption>类型定义,它存储一个或FindChildOption的组合值。
常量 | 值 | 描述 |
Qt::FindDirectChildrenOnly | 0x0 | 查找object的直接孩子 |
Qt::FindChildrenRecursively | 0x1 | 查找object的所有孩子(递归搜索) |
这个示例,返回parentWidget中一个名为“button1”的QPushButton孩子,即使按钮不是父亲的直接孩子:
QPushButton *button = parentWidget->findChild<QPushButton *>("button1");
这个示例,返回parentWidget中的一个QListWidget孩子:
QListWidget *list = parentWidget->findChild<QListWidget *>();
这个示例,返回parentWidget(它的直接父亲)中一个名为“button1”的QPushButton孩子:
QPushButton *button = parentWidget->findChild<QPushButton *>("button1", Qt::FindDirectChildrenOnly);
这个示例,返回parentWidget(它的直接父亲)中的一个QListWidget孩子:
QListWidget *list = parentWidget->findChild<QListWidget *>(QString(), Qt::FindDirectChildrenOnly);
二、设置属性
作用:用来作为id选择器和属性选择器,来设置qss样式
具体使用方法可参考我这篇文章:https://www.cnblogs.com/zhuchunlin/p/17987621
setProperty()
函数描述:用来设置属性
//设置label对象的hehe属性为呵呵
label.setProperty("hehe",'呵呵')
property()
函数描述:用来获取对象的属性
label.property("hehe")