问题标签 [qproperty]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - QObjects 可以有多个同名的静态属性吗?
一个用户自定义的子类可以Parent
有QObject
多个Q_PROPERTY
同名的s(可能有不同的类型)吗?如果我子类化为,并给Parent
它一个类似的名称呢?像这样:Child
Q_PROPERTY
c++ - 转储 QObject 派生对象的所有属性
如何转储 Qt 对象的所有属性?
出于调试目的,例如在分析工厂返回的对象时。
c++ - 创建一个除了初始化之外属性都是只读的 QML 类型?
我想在 C++ 中实现一个 QML 类型。所述 QML 类型应该从一个Component
或类似的加载,如下所示:
注意这个初始化没有什么不寻常的地方。 但是,我还希望以下 JavaScript在指定点处无效:
为了实现我的既定目标,我该如何定义相关属性?
qt - 是否可以用中文显示我的客户 QT 小部件的属性
我想用中文显示我的客户 QT 小部件的属性。可能吗?
我尝试将中文文本作为第二个参数给 Q_PROPERTY 宏,但它会导致编译错误。
qt - 如何制作类似 JSON 的 QObject
简而言之,我想制作一个类似 JSON 的对象,QML / Qt C++ 端都可以轻松访问它。
在 QML 中,我可以制作这样的settings
对象:
并使其成为单例,现在我们可以通过 settings.snapshot.saveDirectory
.
但是在 C++ 中访问它非常不方便,所以我尝试在 C++ 中完成这项任务:创建一个类Settings
,将实例建立为settings
,然后将其QQmlApplicationEngine
作为上下文传递给它。(整个应用程序只有一个实例Settings
)
状态.cpp
主文件
我注册
/li>SnapshotSettings*
类型。否则,它说:qmlRegisterType<>()
似乎没有必要,因为我将它的实例作为上下文传递给 QML,而不是在 QML 中实例化它?
有人告诉我,我做了一个 C++/QML 的反模式……,说“我从未见过有人这样做”。
现在看来没问题,我可以settings.snapshot.saveDirectory
在 QML 中使用。但在 QtCreator 中,自动完成功能无法正常工作。(saveDirectory
之后不会显示settings.snapshot.
)
我的问题是:也许我真的做了一个反模式?如果是,有没有更好的方法来做到这一点?
谢谢。
c++ - 从私有成员公开 Q_PROPERTY
在我正在处理的代码中,我需要Q_PROPERTY
通过一个集成从私有成员公开QWidget
。像这样的东西会很好:
是否可以这样做以及如何做?还是我必须手动编写所有的 get/set 方法?
c++ - 对于属性上的 NOTIFY 信号,如果我给它一个参数,它有什么区别?
假设我有一个看起来像这样的类:
根据文档,声明somethingChanged
为void somethingChanged()
和void somethingChanged(int)
(注意参数)都是有效的。 为什么我要以一种方式而不是另一种方式来做呢?
c++ - QT Q_PROPERTY 错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
我试图设置一个属性,以便变量的值改变一个函数将被调用:
数据交换类:
数据交换.cpp
主机:
但它给出了错误:
这个错误来自哪里以及如何解决?
c++ - 如何通过 Q_PROPERTY 向 QML 公开指向 Q_GADGET 的指针
我MyGadget
在文件中定义了一个 Q_GADGETmygadget.h
和一个Context
类,它包含一个实例MyGadget
并通过 Q_PROPERTY 向 QML 公开指向它的指针:
Context
在 QML 中创建一个实例main
并将其作为上下文属性公开:
与此一起使用的 QML 文件是
一切都编译得很好,但是运行它时没有显示任何文本并且 QML 发出警告
qrc:/main.qml:9:TypeError:无法读取 null 的属性“值”。
如果我在 QML 文件中删除对qmlRegisterUncreatableType<MyGadget>
in的调用main
和对应的调用,import Test 1.0
则会显示文本“Hello World undefined”。
我让它按预期打印“Hello World 4”的唯一方法是Context::gadget
返回存储对象的副本MyGadget
而不是指向它的指针,或者改为创建MyGadget
一个Q_OBECT
。但是这两个在我的实际应用程序中都不是可行的选项,因为我在这里需要引用语义,但在其他地方我也希望MyGadget
在这个例子中对应的类有值语义。
如何让 QML 读取正确的属性值?