QPainter.drawText рендеринг уродливого шрифта

qfont = QtGui.QFont('Ubuntu', 9)
#qfont.setHintingPreference(QtGui.QFont.PreferDefaultHinting)
#qfont.setStyleStrategy(QtGui.QFont.PreferAntialias)
qfont.setStyle(QtGui.QFont.StyleNormal)
qfont.setWeight(QtGui.QFont.Normal)
qpaint.setFont(qfont)
qpaint.drawText(qpix.rect() , QtCore.Qt.AlignBottom + QtCore.Qt.AlignCenter, Invent.get_item(i)['type'])

Рендеринг шрифта (сглаживание) отличается от используемого другими приложениями.

http://rghost.net/53129449/image.png

Как мне сделать так же?

1 ответ

Я не уверен, относится ли это непосредственно к pyQt, но на стороне C++ подсказки рендеринга должны быть установлены каждый раз, когда рисование масштабируется, или это будет выглядеть плохо. Вот как я устанавливаю свои флаги:

m_paintFlags = QPainter::RenderHint(QPainter::Antialiasing | 
    QPainter::SmoothPixmapTransform | 
    QPainter::HighQualityAntialiasing);

Затем в событии рисования перед рисованием чего-либо:

painter.setRenderHints(m_paintFlags);
Другие вопросы по тегам