如何使用 QPainter 绘制可选择的文本?

How to draw selectable text with QPainter?

我需要实现一个像 QGraphcisTextItem 这样的 class,但是我需要它是可选择的文本。

但是,如果我的 class 派生自 QGraphicsTextItem 或 QGraphicsItem,并且我重新实现了绘画事件,那么文本可选择的能力就会丢失(我正在使用 drawText)。

所以我的问题是如何使用 QPainter 的 drawText 创建可选择的文本?

我无法重现您遇到的自定义字体问题。这是问题中的一个非常重要的信息,大大

改变了问题

addApplicationFont 是一个静态函数,它将字体添加到应用程序范围的字体数据库中。使用 applicationFontFamilies(int id) 获取要在 html 中使用的家庭名称:

...
auto id = QFontDatabase::addApplicationFont(":/fonts/myfont.ttf");
if (if == -1)
  return;
auto families = QFontDatabase::applicationFontFamilies(id);
if (families.isEmpty())
  return;
auto face = families.first().toHtmlEscaped();
auto html = QStringLiteral("<font face=\"%1\">Hello</font>").arg(face);
...