问题标签 [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.

0 投票
0 回答
318 浏览

c++ - QObjects 可以有多个同名的静态属性吗?

一个用户自定义的子类可以ParentQObject多个Q_PROPERTY同名的s(可能有不同的类型)吗?如果我子类化为,并给Parent一个类似的名称呢?像这样:ChildQ_PROPERTY

0 投票
1 回答
4035 浏览

c++ - 转储 QObject 派生对象的所有属性

如何转储 Qt 对象的所有属性?

出于调试目的,例如在分析工厂返回的对象时。

0 投票
0 回答
341 浏览

c++ - 创建一个除了初始化之外属性都是只读的 QML 类型?

我想在 C++ 中实现一个 QML 类型。所述 QML 类型应该从一个Component或类似的加载,如下所示:

注意这个初始化没有什么不寻常的地方。 但是,我还希望以下 JavaScript在指定点处无效

为了实现我的既定目标,我该如何定义相关属性?

0 投票
0 回答
25 浏览

qt - 是否可以用中文显示我的客户 QT 小部件的属性

我想用中文显示我的客户 QT 小部件的属性。可能吗?

我尝试将中文文本作为第二个参数给 Q_PROPERTY 宏,但它会导致编译错误。

0 投票
1 回答
279 浏览

qt - 如何制作类似 JSON 的 QObject

简而言之,我想制作一个类似 JSON 的对象,QML / Qt C++ 端都可以轻松访问它。

在 QML 中,我可以制作这样的settings对象:

并使其成为单例,现在我们可以通过 settings.snapshot.saveDirectory.

但是在 C++ 中访问它非常不方便,所以我尝试在 C++ 中完成这项任务:创建一个类Settings,将实例建立为settings,然后将其QQmlApplicationEngine作为上下文传递给它。(整个应用程序只有一个实例Settings

状态.cpp

主文件

  1. 我注册SnapshotSettings*类型。否则,它说:

    /li>
  2. qmlRegisterType<>() 似乎没有必要,因为我将它的实例作为上下文传递给 QML,而不是在 QML 中实例化它?

有人告诉我,我做了一个 C++/QML 的反模式……,说“我从未见过有人这样做”。

现在看来没问题,我可以settings.snapshot.saveDirectory在 QML 中使用。但在 QtCreator 中,自动完成功能无法正常工作。saveDirectory之后不会显示settings.snapshot.

我的问题是:也许我真的做了一个反模式?如果是,有没有更好的方法来做到这一点?

谢谢。

0 投票
2 回答
1094 浏览

c++ - 从私有成员公开 Q_PROPERTY

在我正在处理的代码中,我需要Q_PROPERTY通过一个集成从私有成员公开QWidget。像这样的东西会很好:

是否可以这样做以及如何做?还是我必须手动编写所有的 get/set 方法?

0 投票
1 回答
573 浏览

c++ - 对于属性上的 NOTIFY 信号,如果我给它一个参数,它有什么区别?

假设我有一个看起来像这样的类:

根据文档,声明somethingChangedvoid somethingChanged()void somethingChanged(int)(注意参数)都是有效的。 为什么我要以一种方式而不是另一种方式来做呢?

0 投票
1 回答
641 浏览

c++ - QT Q_PROPERTY 错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

我试图设置一个属性,以便变量的值改变一个函数将被调用:

数据交换类:

数据交换.cpp

主机:

但它给出了错误:

这个错误来自哪里以及如何解决?

0 投票
1 回答
2270 浏览

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 读取正确的属性值?

0 投票
2 回答
481 浏览

c++ - 使用 Q_Property 显示属性

我有一个显示树结构的 GUI,如此处所示。

在此处输入图像描述

这些节点中的每一个都是从它们上面的节点派生的独立类。它们都继承QObject了它们的实现。现在我需要添加一些属性,以便用户PropertiesImplicit. 选择它会打开一个带有属性的窗口。我在头文件中添加了这些属性,Implicit如下所示:

FCinterface.hFCASM节点的头部。

问题是只显示第一个属性,如第二张图片所示。发生这种情况有原因吗?我应该向构造函数或新函数添加一些东西吗?

该类的构造函数Implicit

编辑:

这是所有READ功能的代码