赞
踩
写完《CentOS 7.0下Qt5.8实现和使用Qt Creaor自定义控件》后,很自然的就想到了,把自定义控件做成和Qt Creator中的控件那样,可以直接在属性栏中对其属性进行配置。说起来其实很简单,只需要掌握Q_PROPERTY的知识点,以及在自定义控件项目文件的构造函数中,把需要显示到Qt Creator属性栏中的属性进行设置即可。
环境还是Qt 5.8 CentOS7.0
首先上个效果图:(m_dCurrentValue、m_nRadius是我自己添加的控件属性)
步骤如下:
1)在自定义控件的头文件中,对需要定义为属性的变量使用Q_PROPERTY宏进行定义;Q_PROPERTY的用法可以参考帮助,也可以查看网上的文章,个人推荐一去二、三里的Qt之属性系统。个人觉得看完了你对Q_PROPERTY宏的用法就很清楚了。我在上篇文章中写的DashBoard(表盘控件)把当前值和表盘半径改成了属性。头文件修改两个地方:
a)在QDashBoard头文件中用Q_PROPERTY设置当前值和表盘半径两个属性;代码如下:
Q_PROPERTY(double m_dCurrentValue READgetValue WRITE setValue)
Q_PROPERTY(int m_nRadius READgetRadiusValue WRITE setRadiusValue)
b) 添加m_dCurrentValue、m_nRadius 两个属性值的读写操作函数定义即getValue、setValue、getRadiusValue、setRadiusValue,即
void setValue(double dValue);
double getValue();
int getRadiusValue();
void setRadiusValue(int nValue);
2)在控件的实现文件中,实现上面那四个函数;很简单就是设置值,返回值这样的代码。
3)在控件实现文件的构造函数进行属性初始设置,代码如下:
setProperty("m_dCurrentValue",20);
setProperty("m_nRadius",180);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。