gpt4 book ai didi

qt - QML 中的 64 位整数

转载 作者:行者123 更新时间:2023-12-04 18:42:05 28 4
gpt4 key购买 nike

如何处理 QML 中的 64 位整数?我知道无用的 Javascript 无法正常处理它们,因为它对所有内容都使用 double 值,如果我尝试在信号中使用它们,则所有内容都会设置为 undefined .有没有解决的办法?也许我必须使用 QVariant或者其他的东西?

最佳答案

如果您的 64 位对象不需要方法,请使用 Q_GADGET创建可以存储在 QVariant 中的类型:

struct Int64Data
{
Q_GADGET
public:
int64_t value;
};

注册使用:
qRegisterMetaType<Int64Data>();

您可以将此类型传递给 QML:
Q_INVOKABLE QVariant getMax() {
Int64Data idx;
idx.value = INT64_MAX;
return QVariant::fromValue(idx);
}

你不能直接在 QML 中操作它,但你可以传递给插槽:
Q_INVOKABLE void dumpIndex(const QVariant idx) const {
if (idx.canConvert<Int64Data>()) {
auto data = qvariant_cast<Int64Data>(idx);
qDebug() << "Index value:" << data.value;
}
}

关于qt - QML 中的 64 位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23781083/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com