问题标签 [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 回答
1170 浏览

pyside - PySide TableView 和变体数据 - 显示角色不显示

我有这段代码,当我在 PyQt 中运行它时,它工作得很好,但是当我在 pyside 中运行它时,事情变得很奇怪。我得到了我应该得到的所有列和行,如果我通过脚本访问它们并获取数据,每个单元格都会说明它应该做什么。但是,即使我将这些设置为显示角色,表格中也不会显示任何文本。标题中没有,任何单元格中都没有。我不知所措!

(对于想知道的人,NulLVariant() 只返回 None 或 QVariant() 取决于是在 pyside 还是 pyqt 上)

该模型旨在将字典列表添加到 addRows,并使用字典键创建列。

编辑:当我试图删除这个问题时,我遇到了一个奇怪的错误,但我添加了一个更新的问题,这里有一个更好的简化示例进行测试:

https://stackoverflow.com/questions/34074825/pyside-qtableview-not-displaying-text-like-pyqt-does

0 投票
2 回答
2110 浏览

c++ - 如何将 QVariant::fromValue 与 QString 一起使用?

我有以下代码:

而这个不起作用,QTCreator 中的错误消息如下:

...\qglobal.h:693: 错误:静态断言失败:类型未注册,请使用 Q_DECLARE_METATYPE 宏让 Qt 的元对象系统知道它#define Q_STATIC_ASSERT_X(Condition, Message) static_assert(bool(Condition) , 信息)

我不认为我应该使用Q_DECLARE_METATYPEfor,QString因为如果我这样做:

它工作正常。

我对如何将QVariant::fromValue()与预先声明的 QString 一起使用很感兴趣。

0 投票
1 回答
1453 浏览

list - QVariantList.append() 合并列表而不是嵌套

当我尝试将 a 嵌套QVariantList在 anotherQVariantList中时,结果是两个列表的平面合并,而不是子列表。

演示代码:

我得到的(缩进是我的):

我的期望:

0 投票
1 回答
331 浏览

c++ - 替换 QVariant::Handler::canConvert

是否可以将我们自己的代码注入到 QVariant::canConvert 中?

我正在添加对我们自己的通用值容器和 Qt 版本 (QVariant) 之间转换的支持,主要基于此处的建议如何支持包含自定义类型的 QVariant 对象的比较?

我很确定这个问题的答案是“它不能完成”,浏览源代码表明 QVariant::canConvert 的实现不会调用处理程序,但我想我还是会出于病态的好奇心问.

https://github.com/qtproject/qt/blob/b05d05fd9ce2aeedfaf805a7ed9007a93c902bc9/src/corelib/kernel/qvariant.cpp#L2719

QVariant 实现中是否有任何随机位置,我们可以在这种功能中获得某种挂钩(无需重新编译 Qt),如果没有,Handler 上的函数是否用于任何用途/为什么它存在?大多数情况下 - 有什么解决这个问题的建议吗?

0 投票
1 回答
2881 浏览

qml - 来自自定义类的 QML Qvariant

我有我的自定义 C++ 类: Media.h:

在其他 QML 文件中,我有一些代码从 QML 变体中读取非常好的值,如下所示main.ml

问题是我需要从 C++ 动态创建变体媒体数组并将其发送到 QML。

我有一些信号可以将 medias 数组从 C++ 发送到 QML,但这个数组在QList<Media>. 如何将其转换为QVariantQML 可读?

0 投票
2 回答
2243 浏览

c++ - 如何在 QT 中将 QComboBox 值转换为 int

我正在使用带有 QT Creator 的 Qt 制作一个简单的计算器我想将一个值从 QCombobox(包含操作:'+'、'-'、'*'、'/')转换为 int,所以我使用了这个:

// operation is the name of my QComboBox :)

当试图打印 i 的值来测试它时,我得到:

输出

价值 1219552

价值 1219552

价值 1219552

价值 1219552

价值 1219552

每当我选择任何操作时,转换都会给我与 QComboBox 的索引不对应的相同值。但是它使添加操作成功! 这是演示我要完成的工作的漏洞文件:
计算器

我已经使用图形界面为组合框设置了值 组合框值

有什么建议么?

0 投票
2 回答
1863 浏览

qt - 是否可以将 QPushButton 存储在 QVariant 中?

我想知道是否可以将 QPushButton 存储在 QVariant 中。更准确地说,我正在尝试在具有函数的 QStandardItemModel 中使用它setData。这就是我想要做的:

但显然,它不是那样工作的,所以我尝试了这个:

它也不起作用。我想在不使用 QTableView 的情况下做到这一点(我知道这种视图中有一个 setIndexWidget)。

提前致谢!

0 投票
1 回答
1071 浏览

qt - 动态存储 QML 对象

我想将一组动态 QML 创建的对象存储在变体或列表中。

当我这样做一次时,效果很好:

我正在尝试迭代 10 次以创建一个 10 长度的对象

我该怎么做?

编辑:我附上我的 2 个文件:main.qml 和 MyObject.qml

main.qml

我的对象.qml

0 投票
1 回答
1057 浏览

c++ - QFlags 和 QVariant

我想要做的是简单地将 a 存储QFlags在 a 中QVariant

标志定义:

现在我所做的就是使用该QVariant::fromValue函数构造一个 qvariant:

调试输出显示:

那么,无论出于何种原因,QVariant 似乎无法存储标志?它确实识别类型,但似乎无法存储该值。我错过了什么?如果我注册一个枚举,一切正常。

注意:我知道我可以通过将值转换为整数并返回来存储值,但这对我来说是不可能的,因为 QVariant 创建是泛型方法的一部分。

0 投票
2 回答
1133 浏览

c++ - 我可以方便地将 QVariant 转换回 QList?

如果您使用此宏将类型声明为 q 元类型,则可以转换QList<YourType>为:QVariant

之后,转换甚至是隐式的:

现在我的问题是如何转换variantQList<MyType>.