Question: I want to draw text using `QPainter`, and I want to use `QPainterPath` first (because ultimately I want to rotate the text in all sorts of ways). However, I find that the text produced by `QPainterPath` is much uglier than the text produced by `QPainter`.

The following code:

```
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();
}

```

produces the following result:

![enter image description here](https://i.stack.imgur.com/vxAIw.png)

The former is clearly much cleaner and nicer, especially in smaller fonts. What should I do to get the same result from `QPainterPath`?

I'm producing the above results on a Windows 7 computer, with Qt 5.0.

Answer: 
According to the Qt documentation for adding text to a QPainterPath: -

> 
> Adds the given text to this path as a set of closed subpaths created
>  from the font supplied.
> 
> 
> 

So there is a conversion going on here, which is why it doesn't look the same. If you need to rotate text, you could try rotating the QPainter before rendering and then restoring it afterwards. Alternatively, if you can use QGraphicsView and QGraphicsDisplay instead of just rendering onto the widget, there is the class QGraphicsTextItem which may help.

But overall, it's the conversion to the set of closed subpaths that is responsible for the different output of text quality.
I would beg to differ with the above answers and suggest that both the addText/drawPath and the drawText approaches do the same thing and that there likely is not material 'conversion'.

As noted by Mehdi-Antoine - using drawText gives a mid sized text weight, while using addText/drawPath with both a Pen and Brush gives a heavy weight, while using addText/drawPath with only the fill gives a light weight.

Note than the QPen value has a width, defaulting to 1, and if you apply this pen to stroke the outline of the text with a width of 1, the text will appear very heavily as demonstrated by Medhi-Antoine's example.

However - you can achieve effectively identical results to drawText by using the addText/drawPath approach simply by adjusting the weight of the Pen utilized. For a font size of 30 points, Arial, setting a Pen width of 0.2 and then painting using the addText/drawPath approach seems to create something identical to the drawText approach.

It seems that the drawText method takes the colour of the Pen, then uses that to do a fill, then apply a stroke at a specific thickness.

If you're going to use the drawPath method, you'll have to provide bot the Fill and the Pen, and importantly, to adjust the width of the pen appropriately.