Если костыль@велосипедь допустимо, то через QTextDocument однопиксельную обводку можно сделать так.
C++ (Qt)
QPainter* Painter = new QPainter;
TextImage.fill(BackgroundColor);
Painter->begin(&TextImage);
// Outline text
if (OutlineColor != Qt::transparent)
{
Painter->translate(-1, 0);
TextDocument->drawContents(Painter);
Painter->translate(2, 0);
TextDocument->drawContents(Painter);
Painter->translate(-1, 1);
TextDocument->drawContents(Painter);
Painter->translate(0, -2);
TextDocument->drawContents(Painter);
Painter->translate(0, 1);
Painter->setCompositionMode(QPainter::CompositionMode_SourceIn);
Painter->fillRect(TextImage.rect(), OutlineColor);
Painter->setCompositionMode(QPainter::CompositionMode_SourceOver);
}
TextDocument->drawContents(Painter);
Painter->end();