【问题标题】:How to render QStringView using QPainter?如何使用 QPainter 渲染 QStringView?
【发布时间】:2021-06-10 03:52:44
【问题描述】:

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

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

【问题讨论】:

  • 不,还没有机会。但是你可以为 Qt 提供一个补丁,也许它会被集成。
  • 你看过QStaticTextdoc.qt.io/qt-5/qstatictext.html#details吗?
  • @Fryz:是的,我看过了,很遗憾,由于自定义布局要求,无法使用 QStaticText。

标签: qt qwidget qstring qpainter


【解决方案1】:

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

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

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

下面是这个方法的描述:

它对我的情况非常有用,但是我必须承认我没有分析生成的代码并依赖于文档中的信息。请自行检查。

【讨论】:

    猜你喜欢
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多