【发布时间】:2021-08-06 21:15:22
【问题描述】:
我正在使用 C++ Builder 10.2.3 (Rad Studio 10.2.3) 我正在尝试将 TRectF 转换为 Variant。但它似乎不起作用:
- 第一种解决方案:使用 TValue::From(rect).AsVariant() 或 AsType()。我收到错误消息:无效的类类型转换
- 2e 解决方案:将 TValue::Make() 与 ExtractRawData 结合使用。但我不能使用它,因为 __delphirtti() 不能与 TRectF 一起使用。
这是我正在尝试改编的 Qt 代码示例:
void File::appendRects(const QList<QRectF> &rects)
{
QList<QVariant> newRects = m_metadata["Rects"].toList();
foreach (const QRectF &rect, rects)
newRects.append(rect);
m_metadata["Rects"] = newRects;
}
代码行 newRects.append(rect);将 QRectF 添加到 QVariant 列表中。这意味着转换是自动完成的。
任何有效的解决方案?
【问题讨论】:
-
“但我不能使用它,因为 __delphirtti() 不能与 TRectF 一起工作” 确切的问题是什么。如果您想获得帮助,请发布minimal reproducible example。因为你的问题太模糊了。
标签: c++ c++builder variant