- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想使用 QML 和 C++ 在我的 GUI 上显示类型为 template < typename T>
的多数据类型值.是否可以与 Q_PROPERTY
一起使用或者我应该为每种数据类型使用函数重载并将其传递给 Q_PROPERTY
?
例如:
Q_PROPERTY(int dataread READ dataRead NOTIFY dataChanged)
Q_PROPERTY(float dataread READ dataRead NOTIFY dataChanged)
int dataRead (int data) {return data; }
float dataRead (float data) {return data; }
最佳答案
不,你不能使用带有属性的模板,因为 moc 不支持模板。这已经被讨论过(并且是可行的),但是还没有足够的兴趣来实现它。
每个属性还标识一个具体类型,因此您也不能重载它。您可以重载信号和槽,所以这是可行的:
class foo : public QObject
{
Q_OBJECT
Q_PROPERTY(int intRead READ readInt NOTIFY dataChanged)
Q_PROPERTY(float floatRead READ readFloat NOTIFY dataChanged)
public:
int readInt() {return data; }
float readFloat() {return data; }
signals:
void dataChanged(int data);
void dataChanged(float data);
...
}
请注意,我从您的读取函数中删除了参数。
关于c++ - 我们可以将 Q_PROPERTY 与模板 <typename T> 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38371812/
在此: Q_PROPERTY(QString datastring READ showdata() NOTIFY datastringChanged) 是datastringChanged用于在 QM
我正在使用 Q_PROPERTY s 在我的项目中,我试图找出向这些属性添加一些属性的最佳方法( like min and max value )。 看起来没有任何地方可以在属性本身上存储这些属性..
我的目标是实现更多的代码重用,同时保持冗长。 考虑以下示例代码: // qdot@defixio /tmp/test4 $ cat test.h #include class Foo : publi
我正在将 Q_PROPERTY 与 QML 一起使用。我的代码是: using namespace std; typedef QString lyricsDownloaderString; // th
考虑这些类: Class A : public QObject { ... Q_PROPERTY(int value READ value WRITE setValue NOTIFY
考虑这些类: Class A : public QObject { ... Q_PROPERTY(int value READ value WRITE setValue NOTIFY
我正在尝试将抽象类的实例用作我的一个扩展 QQuickItems 中的属性。我有一个基础类(class),像这样: class VizFactory : public QQuickItem {
我有一个 Configuration,其中包含一些关于文件位置的基本信息,例如下载、安装、图片、音乐、文档等位置。这些目前使用 Q_PROPERTY 暴露给 QML。它们都有自己的访问器: Q_PRO
我是 QT 属性系统的新手,我想了解为什么如果我以一种方式注册和使用属性,它可以工作,但以另一种方式失败。 我有两个类( A 和 B )都继承自 QObject .类 B包含类 A 的几个实例我想注册
我有两个类,TestA 和 TestB。 TestA 扩展了 QObject。我用一些 Q_PROPERTY 设置了它。 Q_PROPERTY(QString a_string READ getStr
我是 Qt 和 C++ 的新手,但长期使用 Delphi 程序员。 我有一个简单的类,我正在尝试将属性添加到: class Rectangle { Q_PROPERTY(int width R
我有这个属性: Q_PROPERTY(int _a READ a WRITE setA NOTIFY aChanged) 我只知道属性的名称 _a。我想获取方法 setA 的索引。 最佳答案 查看 Q
http://doc.qt.io/qt-5/qtqml-cppintegration-exposecppattributes.html class Message : public QObject {
如何将 Q_PROPERTY 宏放入另一个辅助宏中? #define SimpleAllinOne(member, _type) \ public: \ void Set##member(_t
我习惯用参数编写我的“propertyChanged”signal,这样接收端就不需要调用Q_PROPERTY的READ 功能显式。 我这样做是为了清楚起见,并假设在 QML 数据绑定(bind)情况
TL;DR:如何为与使用 Q_PROPERTY 声明的属性同名的访问器生成 doxygen 文档? Qt 的 property system使得在给定属性上使用 Qt 的元对象系统成为可能: // e
我真的想不通为什么我需要它,一直在阅读: http://doc.qt.io/qt-4.8/properties.html#requirements-for-declaring-properties 还
众所周知,继承的信号不能用作Q_PROPERTY NOTIFYer ( https://bugreports.qt.io/browse/QTBUG-7684 )。作为一种解决方法,我在派生类中使用了一
我有一个非常简单的类,它有两个属性;键和值: KeyValue.h: class KeyValue : public QObject { Q_OBJECT Q_PROPERTY(QString
问题 我正在制作一个使用 Q_OBJECT 和 Q_PROPERTY 从脚本访问一些对象的项目。我有两个问题: 使使用前向声明的类可编写脚本 返回一个属性作为指针 说明 1. 为什么要提前申报? 类
我是一名优秀的程序员,十分优秀!