QtApplets-自定义控件-6-属性研究(未成功)
Posted DreamLife.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QtApplets-自定义控件-6-属性研究(未成功)相关的知识,希望对你有一定的参考价值。
QtApplets-自定义控件-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.
关键字:
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)
{
}
在主插件代码中,我也声明了自定义的类,也把自定义类作为属性写上去了,但是还是不可以, 希望有大佬可以指点一下啊。
奈何,在QtDesigner中就是看不到。
放到Qt Creator总也是识别不出来,哪里还有问题呢,大神呢?
提升一下,给用户来个选择咋样?
再提升一下,给用户一个选择呢,咋搞呢,如下图的样子。看我后面的文章
☞ 源码
源码链接:GitHub仓库自取
使用方法:☟☟☟
以上是关于QtApplets-自定义控件-6-属性研究(未成功)的主要内容,如果未能解决你的问题,请参考以下文章