问题标签 [qvariant]
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++ - 具有自定义类型的 qvariant_cast
我有这个类,将其注册为 QVariant
然后我在 QVariant 中转换它,当我想使用 qvariant_cast 并获取 MyTimeLine 对象时,我得到对象,由默认构造函数创建
c++ - 如何在 Qt5 中声明 Qt::PenStyle?
我正在将一个项目从 Qt 4.x 迁移到 5,并且有一个包含以下属性的类:
及其各自的get函数:
我得到一个编译错误说
做了一些研究,我发现了这一点:
QVariant:
*Inconsistent 构造函数采用 Qt::GlobalColor 并产生 QVariant(QColor) 实例已被删除。可以通过显式调用 QColor 构造函数来迁移构建此类变体的代码。例如从“QVariant(Qt::red)”到“QVariant(QColor(Qt::red))*类似地,从枚举值 Qt::BrushStyle、Qt::PenStyle 和 Qt::CursorShape 隐式创建 QVariants 已被删除。显式创建对象或使用 static_cast(Qt::SolidLine) 创建与枚举具有相同值的 int 类型的 QVariant。
问题是,如果我不能像那样做 Qt::PenStyle,我应该如何声明属性/函数?显式创建对象是什么意思?我已经尝试过像引用所说的那样做一些事情,但我没有设法解决它。我确实设法解决了其他类似的错误,但它们都不是属性或函数的声明。
完整错误:
qt5 - qvariant_cast 导致段错误
在 qt 的项目/视图框架中,我试图将 QColorDialog 保存为用户数据,然后将该对话框作为编辑器以及在绘制期间在 tableview 中检索。
在我的类构造函数中,我做
然后,在我的代表的绘画功能中,我有
在运行时,表格第一次显示(虽然颜色错误......我假设不同的问题)。我双击编辑单元格,它会按预期弹出对话框。但是,当我关闭时,它会在指示的行上出现段错误。我不明白为什么,因为我认为我正在做所有必要的检查。
qt - QVariant::QVariant(Qt::BrushStyle) 是私有的
以下代码在使用 Qt 5 编译时产生错误
错误信息如下:
那么我该如何克服呢?
c++ - QVariant 中的自定义类型转换为空字符串
我正在编写一个词法扫描器,它从一些输入中生成一个令牌流。这些标记有一个type和一个value。由于我使用的是 Qt,因此我选择将令牌数据存储为QVariant
. 这对于非自定义类型的令牌数据非常有效。
不幸的是,我有几个自定义类型也存储在令牌中。令牌具有toString()
输出令牌描述(用于调试)的函数,但对于具有自定义类型数据的所有令牌,此函数会给出一个空字符串。代码如下:
测试.h:
令牌.h:
令牌.cpp:
扫描仪的示例输出:
令牌包含一个测试类,TT_TEST
我希望变体打印它的值。不幸的是,这不起作用,我尝试了很多不起作用的解决方案。我当前的解决方法如下所示:
和修改后的toString()
功能:
我必须为我所有感觉很笨拙和错误的自定义类型执行此操作。
我认为必须有更好的解决方案来解决这个问题。你们中的任何人都可以:
- 告诉我如何以
QVariant
更好的方式解决问题,或者 - 建议一个完全不同的解决方案,没有
QVariant
. (我之前有一个模板解决方案,但在那里遇到了不同的问题,所以如果有人建议我需要一个示例)。
?
long-integer - 如何将 unsigned long int 转换为 QVariant
我意识到 QVariant 不提供long
和的功能unsigned long
。它提供到int
、unsigned int
和long long
的转换unsigned long long
。
我们可以在当前的桌面架构中找到long
和int
是等价的,但它们不是从理论的角度来看的。
如果我想将 a 存储long
在 aQVariant
我有义务首先将值转换为long long
. 我想知道是否有其他方法可以克服这个问题。
其次,我有兴趣知道更好/更简单的方法。即使用更简单的代码,并避免使用不必要的空间或指令。
c++ - 如何将 QVariant 转换为自定义类?
我正在使用 Momentics IDE(本机 SDK)开发 BlackBerry 10 移动应用程序。
我有一个列表视图,我想用 C++ 处理它的项目(我需要使用 C++ 而不是 QML)。
我可以使用“connect”指令获取索引路径,但是在将 QVariant 解析为自定义类时遇到问题;
我尝试使用下面的静态演员表
但它返回:
谁可以帮我这个事 ?
c++ - 嵌套 QVariantMap
我正在使用嵌套的 QVariantMap 并且在定义一个采用路径(字符串列表)并将指针返回到低级 QVariantMaps 的方法时遇到问题:
...
...
我收到以下错误:
我知道为什么。问题是我需要获取指向嵌套结构部分的指针,但我无法获得对 QVariant 内部的引用。我尝试使用 data_ptr,在分配给嵌套 QVariantMap的帖子中建议,但没有运气。出于显而易见的原因,我不想对插入/删除/值进行特殊包装(这就是为什么,据我所知,链接主题中接受的答案不是我的情况)。
我试过了:
- 将 QPointer 存储在 QVariant 中——没有运气,因为 QVariant 不是 QObject;
- 使用 QVariant::fromValue(QVariantMap *) 存储指针,但是当我调用 toMap() 时,它返回 QVariantMap,而不是指针,所以我再次得到临时地址错误。不管怎样,我认为这不是我想要的。
有人应该如何正确地做到这一点?
c++ - 在 QT 中使用数组解析 JSON
我想在 QT 中解析 JSON。JSON 看起来像这样:
我使用以下代码:
所以我得到了“tuc”数组的变体列表。一般来说,我想获取所有带有键“短语”的对象,它们的值是这个数组的内容。有什么办法可以摆脱它吗?或者这不适用于 QVariantList 吗?
c++ - 修改 QVariant 中保存的对象的成员变量
我有一个 QVariantList 包含不同类的对象。我需要修改列表中的一个对象的成员变量。我的代码运行,但对象没有改变(看起来对象的副本正在改变)。这是类似于我正在做的示例代码:
我也试过:
但没有区别。我想更改对象的 myfield,而不是对象的副本。如何修改 QVariant v 中保存的对象的“myfield”字段。