如何使用 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);
...
我需要实现一个像 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);
...