在Qt Designer的.ui文件中添加动态属性后,如何用property成员函数获取?
在Qt中通过property()获取.ui文件定义的动态属性
没问题,我来给你讲清楚怎么操作:
首先,确保你的.ui文件已经被Qt的编译工具(比如uic)转换成了对应的C++头文件——如果用Qt Creator开发的话,这个过程是自动完成的,不用手动处理。
接下来,不管是在创建对话框实例后,还是在对话框类的成员函数里,都可以直接调用QObject::property()方法来获取你定义的动态属性function:
示例代码
// 假设你的对话框类是test(对应.ui里的<class>test</class>) test myDialog; // 获取动态属性"function"的值,返回的是QVariant类型 QVariant propertyValue = myDialog.property("function"); // 根据你实际设置的属性值类型,转换为对应的数据类型 // 比如如果属性是字符串类型: QString funcString = propertyValue.toString(); // 如果是整数类型: int funcInt = propertyValue.toInt(); // 如果是布尔值: bool funcBool = propertyValue.toBool();
如果是在对话框类的成员函数内部获取,直接用this指针调用就行:
void test::someFunction() { QVariant value = this->property("function"); // 后续处理... }
注意事项
- 属性名是大小写敏感的,一定要和你在.ui文件里写的
name="function"完全一致,不能写错。 - 因为你定义的是动态属性(
stdset="0"标记),Qt的property()方法对内置属性和自定义动态属性都能支持,不用额外做配置。
内容的提问来源于stack exchange,提问作者lens
相关产品推荐
相关产品推荐

