问题标签 [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 与自己的类型进行比较是否有效?
更新
我创建了一个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 如何比较未知类型吗?我宁愿依赖规范而不是实现。
c++ - QVariant 转换为 QPainterPath
我现在制作的迷你游戏有问题。问题如下:我为我的游戏创建了一个关卡编辑器,因此我必须创建自己的委托和模型,当我尝试通过 shapeeditor 进行编辑时会出现问题(它更有可能创建一个painterpath)。然后我通过数据返回painterpath,但是当我尝试用我的委托绘制它时,qt告诉我以下错误:
我不太确定为什么会出现此错误。有关项目源代码的信息,如果需要,我可以提供。但我只是认为从 qvariant 到 qpainterpath 的转换是不可能的。它们必须是一种方法。
注意:我尝试执行以下操作
但这不起作用>.<谢谢,如果你能帮助我可能的解决方案,有没有从painterpath创建一个像素图?我可以简单地返回像素图而不是painterpath。
c++ - 'operator[]' 不匹配(操作数类型是 'QVariant' 和 'const char [2]')QVariant/QVariantMap
我试图在 qt 5.1 中启动 json 的包装类,我正在开发一个函数,该函数将检查输入的 var 是 QVariantMap 还是只是 QVariant,并且一切正常,直到我进入第二级木里地门阵。这是我的数组结构和类代码。
这给我带来了问题,当我只使用“obj”或“obj[“1”]”时没有问题,只有当我
c++ - 将 QList 转换为 QVariant
该类包含以下内容:
Q_PROPERTY(QList<double> switch1 READ switch1 WRITE setSwitch1 NOTIFY switch1Changed)
以下作品:
但现在我的数据类型是QVariantList
而不是QList<double>
.
我现在应该如何用 QVariant 替换 QList?
这不起作用:
c++ - QVariant 无法区分 QDateTime 和 QString
我有一个QDateTime object
存储在 a 中的QVariant
,然后我检查它QVariant
,type()
但是当我检查类型时它的行为很奇怪。
qt - 如何对 QList 进行排序在 Qt 中?
我有以下数据结构。
我怎样才能对这个列表进行排序?此列表包含字符串。我想fieldList
按字母顺序排序?
c++ - QVariant vs boost::any vs boost::variant
我需要有效的方法来将不同类型的值(int、float、QString 或 std::string、bool)存储在像 QVariant 这样的“通用”容器之一中。
我想归档更少的内存使用。
我更喜欢不存储内部值类型的容器,因为它是开销。
我应该使用哪一个?
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。
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
c++11 - QSettings 中 QVariant 中的枚举类
我对枚举类、QVariants 和 QSettings 类有疑问。我想将枚举类值存储在 QVariant 中,该 QVariant 进入 QSettings 实例。所以,我的代码实际上看起来像这样:
在执行代码的这一点上,一个断言跳进来并抱怨:
在互联网上搜索,我发现该类缺少合适的 << 和 >> 运算符。但这不是枚举类的选择。我什至尝试使用
但它没有帮助。也许您对我有其他建议/解决方案。谢谢!