本文已参与「新人创作礼」活动,一起开启掘金创作之路。
QtApplets-自定义控件-5-属性研究
这一篇我们继续研究自定义控件的属性部分,上一篇中我们研究了单一的属性,但是像我们QWidget属性中的geometry属性下面有4个参数,如下图所示:
那么这样的属性该怎么自定义了,今天来研究研究。
QtApplets-自定义控件-5-属性研究1 声明一个自定义的属性2 实现代码3 测试4 提升一下,使用自定义的类型☞ 源码
关键字:
Q_PROPERTY、属性、自定义、设置、QRect
1 声明一个自定义的属性
这里我们将要搬运Qt官方代码中的代码来,使用Q_PROPERTY声明一个testGeometry的属性,其读取函数为testGeometry,设置函数为setTestGeometry
Q_PROPERTY(QRect testGeometry READ testGeometry WRITE setTestGeometry)
声明两个函数和一个变量
QRect testGeometry();
void setTestGeometry(const QRect r);
QRect testQRect;
2 实现代码
实现代码与原来的相识,如下
QRect CustomControl::testGeometry()
{
return testQRect;
}
void CustomControl::setTestGeometry(const QRect r)
{
m_label->setText(QString::number(r.width(),10));
testQRect = r;
}
QRect CustomControl::testGeometry()
{
return testQRect;
}
void CustomControl::setTestGeometry(const QRect r)
{
m_label->setText(QString::number(r.width(),10));
testQRect = r;
}
QRect CustomControl::testGeometry()
{
return testQRect;
}
void CustomControl::setTestGeometry(const QRect r)
{
m_label->setText(QString::number(r.width(),10));
testQRect = r;
}
3 测试
把对应的库拷贝到Qt Designer 程序目录下,就可以看到我们自己的属性了。如下图所示
4 提升一下,使用自定义的类型
想象一下,在上面的内容中,我们使用的QRect,这个还是Qt原生支持的内容,如果是我们自己定义的一种类型呢,他如何被Qt识别了,例如TestRect,详见后面更新的文章。
☞ 源码
源码链接:GitHub仓库自取
使用方法:☟☟☟