QtApplets-自定义控件-4-属性研究

简介: QtApplets-自定义控件-4-属性研究

image.png

QtApplets-自定义控件-4-属性研究

这一篇我们研究研究自定控件中属性部分。也终于要添加我们自己的代码了。先看下演示效果吧。这里我搞了一个名字叫做testID的属性,他对应的读函数为getTestID写函数为setTestID

image.pngQtApplets-自定义控件-4-属性研究

QtApplets-自定义控件-4-属性研究

1 声明一个自定义的属性

2 实现

☞ 源码

关键字: Q_PROPERTY、属性、自定义、设置、获取


1 声明一个自定义的属性

这里我们需要用到一个关键宏Q_PROPERTY,看看官方对这个宏的描述


This macro is used for declaring properties in classes that inherit QObject. Properties behave like class data members, but they have additional features accessible through the Meta-Object System.


简单翻译一下:


这个宏用于在继承QObject的类中声明属性,属性的行为类似于数据成员,但是它们有通过元对象系统访问的附加特性。

  Q_PROPERTY(type name
             (READ getFunction [WRITE setFunction] |
              MEMBER memberName [(READ getFunction | WRITE setFunction)])
             [RESET resetFunction]
             [NOTIFY notifySignal]
             [REVISION int]
             [DESIGNABLE bool]
             [SCRIPTABLE bool]
             [STORED bool]
             [USER bool]
             [CONSTANT]
             [FINAL])

image.png

#include "customcontrol.h"
CustomControl::CustomControl(QWidget *parent) :
    QWidget(parent)
{
    m_label = new QLabel(this);
    m_label->setGeometry(0,0,100,20);
}
int CustomControl::getTestID()
{
    return testID;
}
void CustomControl::setTestID(int temp)
{
    testID = temp;
    m_label->setGeometry(0,0,100,20);
    m_label->setStyleSheet("color: rgb(255, 255, 0);font: 11pt '黑体';");
    m_label->setText(QString::number(testID,10));
    update();
}

image.png

目录
相关文章
|
XML 存储 Unix
DBus类型系统以及在Qt和C++ 中的使用(一)
DBus类型系统以及在Qt和C++ 中的使用
1156 0
|
算法 前端开发 C++
【Qt UI相关】Qt设置窗体或控件的背景色透明
【Qt UI相关】Qt设置窗体或控件的背景色透明
2081 0
|
移动开发 JavaScript 前端开发
开源项目推荐:SCADA组态软件Qt,kanzi,C#,MFC和WEB大全(收藏版)
开源项目推荐:SCADA组态软件Qt,kanzi,C#,MFC和WEB大全(收藏版)
6151 0
|
数据采集 JSON 数据格式
深入解析:使用Python爬取Bilibili视频
本文介绍了如何使用Python编写脚本自动化下载Bilibili视频。通过requests等库获取视频和音频URL,使用ffmpeg合并音视频文件,最终实现高效下载。注意遵守网站爬虫政策和法律法规。
1544 4
|
存储 Java API
Android系统 文件访问权限笔记
Android系统 文件访问权限笔记
1597 1
|
Linux
Linux线程同步(try锁和读写锁)
Linux线程同步(try锁和读写锁)
261 0
|
数据可视化 前端开发 UED
matplotlib图形整合之多个子图一起绘制
matplotlib图形整合之多个子图一起绘制
969 0
matplotlib图形整合之多个子图一起绘制
|
存储 安全 区块链
一文说清楚IPFS分布式存储系统
一文说清楚IPFS分布式存储系统
3656 1
|
缓存 负载均衡 安全
CDN是什么产品,CDN防护效果怎么样,如何选择CDN
CDN是什么产品,CDN防护效果怎么样,如何选择CDN
|
存储 算法 C语言
怎么理解面向对象和面向过程到底的本质区别? .
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

热门文章

最新文章