jjzjj

QVariant

全部标签

c++ - QMetaType::Float 不在 QVariant::Type 中

我有一个运行良好的应用程序,但它不是在打开警告的情况下编译的。我正在尝试将其重新打开并整理它们,但没有关于如何解决此问题的想法。我有:QVariantsomeVarQVariant::TypevariantType=someVar.type();switch(variantType){caseQMetaType::QString:doSomething1();break;caseQMetaType::Float:doSomething2();break;}并收到此警告/错误:error:casevalue‘135’notinenumeratedtype‘QVariant::Type’[

c++ - 如何将 QMap<QString, QMap<QString, int>> 转换为 QVariant?

QVariant(需要QSettings类)支持从QMap创建但是尝试初始化这样的东西:QMap)>i;给出错误:functionreturningafunction.然后我尝试了QMapQVariant()过载得到了error:nomatchingfunctionforcalltoQVariant::QVariant(QMap>&)现在我尝试了一个类型转换:QMap>i;得到了templateargument2isinvalidinvalidtypeindeclarationbefore';'token那么转换嵌套QMap所需的巫术是什么?到QVariant对象?

c++ - Qt - 没有匹配函数来调用 ‘QVariant::QVariant(MyClass&)’

我在创建具有自定义类型的QVariant时遇到问题。这是一个小例子,展示了我想要实现的目标:主要.cpp:#include"MyClass.h"intmain(){MyClasssome_object;QVariantvariant(some_object);return0;}包含/MyClass.h:#pragmaonce#includeclassMyClass{public:MyClass():_my_member(0.0){}MyClass(constMyClass&other){_my_member=other._my_member;}~MyClass(){}MyClass&o

c++ - Qt:将数字转换为 QString、QVariant 或 QString::number 哪个更好

我只是好奇。比方说,我需要在控制台中输出一个数字。代码为:#include#include#includevoiddisplayNumber(quint8number){qDebug()哪个性能更好?我认为内存消耗也不同。QVariant(number).toString()意味着它将QVariant存储在堆栈中。不确定QString::number(),它不应该只调用该函数(当然,该函数有一个QString返回,所以它也在堆栈上分配并占用该空间和分配和取消分配它的操作)?无论如何,sizeof()为QVariant提供了16个字节,为QString提供了4个字节。

c++ - 带有 std::shared_ptr 的 QVariant

我有以下问题,我正在使用Q_DECLARE_METATYPE(std::shared_ptr);qRegisterMetaType>();QMetaType::registerComparators>();使用std::shared_ptr与例如QList模型。我需要一种行为QVariant::fromValue(std::shared_ptr(newint(5)))==QVariant::fromValue(std::shared_ptr(newint(5)))是真的。自std::shared_ptr::operator==()以来,我上面的代码在这里返回false比较原始指针。是否

c++ - 如何将 QList 从 QML 传递到 C++/Qt?

我正在尝试将整数的QList从QML传递到C++代码,但不知何故我的方法不起作用。使用以下方法出现以下错误:leftof'->setParentItem'mustpointtoclass/struct/union/generictypetypeis'int*'非常感谢任何解决问题的意见下面是我的代码片段头文件Q_PROPERTY(QDeclarativeListPropertyenableKeyREADenableKey)QDeclarativeListPropertyenableKey();//functiondeclarationQListm_enableKeys;cpp文件QDe

C++ Qt QVariant类型使用介绍与代码演示

作者:令狐掌门技术交流QQ群:675120140csdn博客:https://mingshiqiang.blog.csdn.net/文章目录一、QVariant基本用法二、自定义类型使用QVariant三、其它用法赋值修改和替换值使用`QVariant::setValue()`设置值复制构造函数和赋值操作比较使用`QVariant::swap()`交换值使用引用计数进行优化的复制使用`QVariant::clear()`清除值使用`QVariant::isValid()`检查是否包含有效数据QVariant类是Qt框架中的一个非常重要的类。它是一种通用的容器类,可以存储各种不同类型的值࿰

c++ - QVariant 只接受 QList 而不是 QVector 或 QLinkedList 是有原因的吗

QVariant似乎接受QList而不是QVector也不QLinkedList.仅仅是因为它看到了QList吗?,QVector和QLinkedList作为基本相似(在抽象意义上)的数据结构?我正在添加std::vector到QVariant.如果仅使用QtAPI而不是手动转换,则需要两次转换:来自std::vector至QVector来自QVector至QListPS:我知道我可以添加std::vector至QVariant直接与this但我相信在那种情况下它不会知道它是一个对象vector。 最佳答案 调用qRegisterM

c++ - QT信号槽如何使用模板?

我想在我的程序中使用信号和槽,但不幸的是它们应该用于传输几种不同的数据类型(例如QString、double等),我不想仅仅因为我需要而写20个不同的槽每种数据类型一个。但是当我想声明一个插槽时templatevoidSlot1(tdata);QT告诉我不能在信号和槽中使用模板。有解决方法吗?还是可以改进我的方法? 最佳答案 准确答案:Itisimpossible解决方法:您可以使用新的信号和槽语法执行类似的操作:QSlider*slid=newQSlider;QLineEdit*lne=newQLineEdit;connect(s

c++ - 分配给嵌套的 QVariantMap

#include#include#includeintmain(intargc,char*argv[]){QCoreApplicationa(argc,argv);QVariantMapmap;map["foo"]=QVariant(QVariantMap());map["baz"]="asdf";qvariant_cast(map["foo"])["bar"]="a";qDebug()(map["foo"])["bar"].toString();qDebug()我试图在嵌套的QVariantMap中分配给QVariant。第一个qDebug()不输出任何内容,但第二个按预期输出“as