You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QVariant转QString时随机出现内容不符问题求助

Qt 5.15.10 QVariant转QString随机出现内容不一致问题

场景与代码实现

  • 我使用QTableView展示数据,部分列的内容为方括号包裹、逗号分隔的数组格式,例如[20,1647.8,2101.2,1911.6,..., -1.6915]——第一个元素是表示数组长度的整数,其余均为浮点数。
  • 为了拆分这些逗号分隔的值,我通过QModelIndex获取单元格内容,将QVariant转换为QString后进行后续处理,核心代码如下:
QModelIndex index = myTable->model()->index(row,col,QModelIndex());
QVariant arrayQVar = myTable->model()->data(index);
QString arrayStr = arrayQVar.toString();  
//.... 后续其他处理,上述代码会被多次执行

随机异常现象

存在约万分之一的概率,arrayStr与arrayQVar的内容出现不一致:

  • 打印arrayQVar输出示例:
QVariant(QString, "[20,1647.8,2101.2,1911.6,756.84...]")
  • 对应打印arrayStr输出示例:
[20,-4388.4,-6596.3,-6368.5,...]

异常时除第一个值保持一致外,其余所有值完全不同,且问题随机发生在不同单元格,无固定触发规律。

运行环境

Qt 5.15.10 MinGW 64位版本,上述代码运行在非GUI线程中。

疑问

我原本认为QVariant转QString是基础转换操作,不应出现此类问题。现在怀疑是否因为数组第一个元素是整数(如20),后续为浮点数,格式不统一导致异常?是否需要将第一个值改为20.0这类浮点数格式来尝试解决?


内容的提问来源于stack exchange,提问作者SuperNoooob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 11:40:33