QPainter
来绘制文本,并且我想先使用QPainterPath
(因为最终我想以各种方式旋转文本)。但是,我发现QPainterPath
生成的文本比QPainter
生成的文本要难看得多。以下是代码:
void MyWidget::paintEvent(QPaintEvent* /*event*/) {
QFont font;
font.setStyleHint(QFont::Times, QFont::PreferAntialias);
font.setPointSize(30);
QPainter painter;
painter.begin(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setBrush(Qt::black);
painter.setFont(font);
painter.drawText(10, 40, "Hello World");
QPainterPath textPath;
textPath.addText(10, 100, font, "Hello world");
painter.drawPath(textPath);
painter.end();
}
生成以下结果:
前者显然更干净、更美观,尤其是在小字体中。我应该如何使用QPainterPath
来获得相同的结果?
我在Windows 7电脑上使用Qt 5.0生成以上结果。
QPainter
会使情况变得更糟,因为旋转文本不支持抗锯齿。 - Yellow