如何使用 QPainter 渲染 QStringView?

问题描述

我正在实现一个自定义文本布局引擎,我需要渲染很多 QStringView。但是 QPainterdrawText 重载只接受 QString。将所有这些 QStringView 转换为 QString 只是为了绘制它们是非常低效的,并且有点违背了使用字符串视图的初衷。

有没有办法避免为了使用 QString 函数而初始化许多 drawText?也许有一种方法可以创建“假”QString?或者也许有一个较低级别(但仍然是跨平台)的文本绘制方法? 谢谢!

解决方法

我还没有找到专门为此目的使用 QStringView 的方法。

然而,我确实找到了一种方法来创建 QStrings,同时避免昂贵的复制。

QString 有一个名为 fromRawData 的静态方法,它允许从预先存在的指针和长度创建一个 QString。使用这种方法,似乎可以避免复制。

这里是这个方法的描述:

enter image description here

它对我的案例很有用,但是我必须承认我没有对结果代码进行概要分析,而是依赖于文档中的信息。请自行检查。