QtApplets-自定义控件-6-属性研究(未成功)

简介: QtApplets-自定义控件-6-属性研究(未成功)

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

接上篇,我们最后的那个升华了的小问题,如何使用自定义的数据类型作为我们自定义控件的属性呢。看帮助文档是支持的,但是要什么样子的自定义数据类型,这里没有写呀。这里我没有搞定,后面的内容不用看了。


The property name and type and the READ function are required. The type can be any type supported by QVariant, or it can be a user-defined type. The other items are optional, but a WRITE function is common. The attributes default to true except USER, which defaults to false.

For example:


Q_PROPERTY(QString title READ title WRITE setTitle USER true)


For more details about how to use this macro, and a more detailed example of its use, see the discussion on Qt’s Property System.

See also Qt’s Property System.


文章目录


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

目前状态

提升一下,给用户来个选择咋样?

☞ 源码

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


目前状态


目前状态呢,我已经实现一个自定义的类,代码如下


testrect.h

#ifndef TESTRECT_H
#define TESTRECT_H
#include <QObject>
#include <QSharedDataPointer>
#include <QWidget>
class TestRectData;
class TestRect : public QWidget
{
    Q_OBJECT
    Q_PROPERTY(int testX READ getTestX WRITE setTestX)
public:
    explicit TestRect(QWidget *parent = nullptr);
    TestRect(const TestRect &);
    TestRect &operator=(const TestRect &);
    ~TestRect();
    int getTestX();
    void setTestX(int temp);
signals:
private:
    QSharedDataPointer<TestRectData> data;
private:
    int mTestX = 0;
};
#endif // TESTRECT_H

testrect.cpp


#include "testrect.h"
class TestRectData : public QSharedData
{
public:
};
TestRect::TestRect(QWidget *parent) : QWidget(parent), data(new TestRectData)
{
}
TestRect::TestRect(const TestRect &rhs) : data(rhs.data)
{
}
TestRect &TestRect::operator=(const TestRect &rhs)
{
    if (this != &rhs)
        data.operator=(rhs.data);
    return *this;
}
TestRect::~TestRect()
{
}
int TestRect::getTestX()
{
    return mTestX;
}
void TestRect::setTestX(int temp)
{
}

image.pngimage.pngimage.pngimage.pngimage.png

目录
相关文章
|
2月前
|
存储 Swift
Swift开发——属性检查器
Swift中的属性检查器(willSet, didSet)允许在设置存储属性值前后执行代码。在类`Circle`中,属性`radius`使用属性观察器:willSet在赋值前检查值,若值为负则打印警告;didSet在赋值后比较新旧值,根据变化输出相应信息。在实例`c`中,`radius`从-5变为0时,输出“Input value is negative.”和“The circle gets smaller.”;从0变为10时,输出“Input value is normal.”和“The circle gets larger.”。
188 4
Swift开发——属性检查器
|
3月前
|
JavaScript 前端开发 定位技术
HTML新特性【账号和获取密钥、初始化、变更地图类型、添加控件、改变控件位置、添加覆盖物、自定义标注图标、添加文本标注】(四)-全面详解(学习总结---从入门到深化)(上)
HTML新特性【账号和获取密钥、初始化、变更地图类型、添加控件、改变控件位置、添加覆盖物、自定义标注图标、添加文本标注】(四)-全面详解(学习总结---从入门到深化)
50 0
|
3月前
|
JSON 定位技术 数据格式
HTML新特性【账号和获取密钥、初始化、变更地图类型、添加控件、改变控件位置、添加覆盖物、自定义标注图标、添加文本标注】(四)-全面详解(学习总结---从入门到深化)(下)
HTML新特性【账号和获取密钥、初始化、变更地图类型、添加控件、改变控件位置、添加覆盖物、自定义标注图标、添加文本标注】(四)-全面详解(学习总结---从入门到深化)
51 0
|
C#
WPF整理-为控件添加自定义附加属性
原文:WPF整理-为控件添加自定义附加属性 附加属性,大家都不陌生,最常见的是Canvas.Left/Canvas.Top,类似的也有Grid.Row/Grid.Column等附加属性。举个最常见的例子 需要说明的是并不是所有的附加属性都是元素放进去后才会有附加效果,上面的例子只是刚好是这种错觉的巧合情况,Grid.Row也属于这种巧合。
2094 0
QtApplets-自定义控件-5-属性研究
QtApplets-自定义控件-5-属性研究
107 0
QtApplets-自定义控件-5-属性研究
QtApplets-自定义控件-4-属性研究
QtApplets-自定义控件-4-属性研究
120 0
QtApplets-自定义控件-4-属性研究
QtApplets-自定义控件-7-属性研究
QtApplets-自定义控件-7-属性研究
95 0
QtApplets-自定义控件-7-属性研究
|
Web App开发
艾伟:WinForm控件开发总结(七)-----为复杂属性的子属性提供编辑功能
前面的几篇文章中,我们给控件添加一个复杂的类型Scope,并且给它的类型提供的一个类型转换器,现在我们可以在属性浏览器中编辑它的值,并且它的值也被串行化的源代码里了。但是你有没有发现,在属性浏览器里编辑这个属性的值还是不太方便。
681 0
|
C# 数据安全/隐私保护
WPF 使用附加属性增加控件属性
原文:WPF 使用附加属性增加控件属性 使用附加属性增加控件属性,使得这个附加属性在使用的时候没有局限性,可以在任何的控件中使用它来增加所需要的属性,使得控件的属性使用起来非常灵活   一、自定义附加属性 1 2 3 4 5 6 7 8 9 10 11 ...
877 0