смотри setTextFlags(Qt::AlignCenter | WordBreak)
Дело в том, что при таком подходе текст будет переноситься на новую строку. Но при этом ширина этого текста будет равной ширине самого длинного слова в этом тексте, независимо от ширины канвы.
Есть ещё варианты? Я уже перекопал кучу флагов, но всё не то