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

0 投票
1 回答
6310 浏览

c++ - QVariant 与自己的类型进行比较是否有效?

更新

我创建了一个qt bugticket,希望文档能够得到扩展。

原始问题

Believe an Question from 2010 and the Qt Documentation ,operator==()不适用于自定义类型。

引用:

bool QVariant::operator==(const QVariant & v) const

将此 QVariant 与它们进行比较,如果它们相等则v返回;true否则返回false

QVariant使用它包含的 type() 的相等运算符来检查相等性。如果其类型与此变体的类型不同,QVariant将尝试。convert() v查看canConvert()可能的转换列表。

警告:此函数不支持使用qRegisterMetaType().

我试图从 2010 年的 Stackoverflow 问题中重现重现案例,并且比较对我来说没有任何问题。

我还更进一步,尝试使用自己的类进行比较,这也很有效。要重现,请将以下代码放入任何标题中:

并将以下代码放入任何函数中:

我猜想在较新的 qt 版本中,Q_DECLARE_METATYPE使用 时会获取类型的大小,因此 QVariant 可以按字节比较未知类型的值。

但这只是一个猜测,我不想通过猜测 qt 的功能而不是依赖文档来冒我的应用程序稳定性的风险。

我可以找出 QVariant 如何比较未知类型吗?我宁愿依赖规范而不是实现。

0 投票
1 回答
257 浏览

c++ - QVariant 转换为 QPainterPath

我现在制作的迷你游戏有问题。问题如下:我为我的游戏创建了一个关卡编辑器,因此我必须创建自己的委托和模型,当我尝试通过 shapeeditor 进行编辑时会出现问题(它更有可能创建一个painterpath)。然后我通过数据返回painterpath,但是当我尝试用我的委托绘制它时,qt告诉我以下错误:

我不太确定为什么会出现此错误。有关项目源代码的信息,如果需要,我可以提供。但我只是认为从 qvariant 到 qpainterpath 的转换是不可能的。它们必须是一种方法。

注意:我尝试执行以下操作

但这不起作用>.<谢谢,如果你能帮助我可能的解决方案,有没有从painterpath创建一个像素图?我可以简单地返回像素图而不是painterpath。

0 投票
1 回答
2847 浏览

c++ - 'operator[]' 不匹配(操作数类型是 'QVariant' 和 'const char [2]')QVariant/QVariantMap

我试图在 qt 5.1 中启动 json 的包装类,我正在开发一个函数,该函数将检查输入的 var 是 QVariantMap 还是只是 QVariant,并且一切正常,直到我进入第二级木里地门阵。这是我的数组结构和类代码。

这给我带来了问题,当我只使用“obj”或“obj[“1”]”时没有问题,只有当我

0 投票
4 回答
16601 浏览

c++ - 将 QList 转换为 QVariant

该类包含以下内容:

Q_PROPERTY(QList<double> switch1 READ switch1 WRITE setSwitch1 NOTIFY switch1Changed)

以下作品:

但现在我的数据类型是QVariantList而不是QList<double>.

我现在应该如何用 QVariant 替换 QList?

这不起作用:

0 投票
1 回答
1652 浏览

c++ - QVariant 无法区分 QDateTime 和 QString

我有一个QDateTime object存储在 a 中的QVariant,然后我检查它QVarianttype()但是当我检查类型时它的行为很奇怪。

0 投票
3 回答
55577 浏览

qt - 如何对 QList 进行排序在 Qt 中?

我有以下数据结构。

我怎样才能对这个列表进行排序?此列表包含字符串。我想fieldList按字母顺序排序?

0 投票
2 回答
3012 浏览

c++ - QVariant vs boost::any vs boost::variant

我需要有效的方法来将不同类型的值(int、float、QString 或 std::string、bool)存储在像 QVariant 这样的“通用”容器之一中。

我想归档更少的内存使用。

我更喜欢不存储内部值类型的容器,因为它是开销。

我应该使用哪一个?

0 投票
0 回答
244 浏览

c++ - 使用 QSqlQuery 和 QT 4.8.4 检索 MS SQL 表的 Uniqueidentifier 字段时为空

我在 Windows 机器上有 MS SQL Server 9.0.4035。我在 OpenSUSE 12.3 上使用稳定的 freetds 0.91 和 unixODBC 2.2 连接到它。这是confs:

freetds.conf:

odbc.ini:

在 tsql 和 isql 中执行下一个 sql 查询我得到:

(这意味着在 freetds 的层面上,一切都很好。)

当我这样做时,我得到了同样的结果:

(这意味着在 unixODBC 级别上一切正常)。

但是在 Qt 4.8.4 中执行这行代码:

我只得到:

我应该怎么办?

PS> 我不能使用 Qt 5。

0 投票
1 回答
333 浏览

c++ - Qt 4.8.5 QVariant 未解析的外部符号 Visual Studio 2012

我正在尝试在 VS 2012 中编译我的第一个 Qt 项目。我正在使用 Qt 4.8.5 开源。我已经成功编译了所有内容,并且安装了 VS2012 QT 插件。QT4 显然没有插件,只有 QT5。

我编译并运行了一个非常基本的应用程序,现在我正在尝试使用 QTableView 构建一个应用程序。我正在根据此处的 ModelView 教程构建我的数据库类。我现在收到以下错误: CBDatabase.obj : error LNK2001: unresolved external symbol "public: virtual class QVariant __thiscall CBDatabase::data(class QModelIndex const &,int)const " (?data@CBDatabase@@UBE?AVQVariant@ @ABVQModelIndex@@H@Z)

当 QT5 VS2012 插件试图链接 QT5 库时,我不得不更改链接器属性以链接到 QT4 库。

所以我最好的猜测是我没有链接正确的库,但我似乎无法弄清楚我错过了哪一个。

这是我的库列表: qtmaind.lib QtCored4.lib QtGuid4.lib QtSqld4.lib

0 投票
2 回答
4104 浏览

c++11 - QSettings 中 QVariant 中的枚举类

我对枚举类、QVariants 和 QSettings 类有疑问。我想将枚举类值存储在 QVariant 中,该 QVariant 进入 QSettings 实例。所以,我的代码实际上看起来像这样:

在执行代码的这一点上,一个断言跳进来并抱怨:

在互联网上搜索,我发现该类缺少合适的 << 和 >> 运算符。但这不是枚举类的选择。我什至尝试使用

但它没有帮助。也许您对我有其他建议/解决方案。谢谢!