我们有一个应用程序(QCoreApplication),它需要一些图像作为输入,对其进行处理,并重新导出。现在我们需要在这些图像上添加一些文本,并使用QPainter类尝试实现此功能。在我们的另一个应用程序 (使用QApplication) 中使用时效果很好,但在我们的主要 QCoreApplication 应用程序中却不起作用。
以下是代码示例:
应用程序在
有什么想法吗?
这是一个非常简单的文本,因此如果不使用Qt的建议也将受到赞赏。
以下是代码示例:
void drawTextOnImage(QImage* image, const QString& text, const QFont& font)
{
QPainter p;
if (!p.begin(image)) return;
p.setFont(font);
p.drawText(image->rect(), Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap, text);
p.end();
}
应用程序在
drawText
行崩溃。有什么想法吗?
这是一个非常简单的文本,因此如果不使用Qt的建议也将受到赞赏。
QPixmap
上绘制,而不是在QImage
上绘制。即,将你的函数更改为:void drawTextOnImage(const QPixmap &image, const QString& text, const QFont& font)
。 - vahanchoQPainter
不依赖于小部件,也不需要QApplication
,而是需要一个QGuiAppication
。 - Benjamin T