Почему шрифты в Qt выглядят размытыми или пиксельными? - PullRequest
4 голосов
/ 09 мая 2020

Все мои шрифты выглядят пиксельными, поэтому я использовал AntiAliasing, но это не помогает. Как вы можете видеть пиксельный шрифт на самом изображении:

enter image description here

Это код, который я сейчас использую:

butt1 = QtWidgets.QLabel("""Scrappr""")
font = QtGui.QFont()
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
font.setPixelSize(22)
font.setFamily('Segoe UI Bold')
butt1.setFont(QtGui.QFont(font))

Я пробовал разные решения на SO, qtforums et c, но у меня ничего не работает: (

Я пробовал:

  • Различные комбинации ClearType text но это не сработало, так как по умолчанию весь текст выглядит хорошо на windows и chrome , но только с Qt он становится пиксельным.

  • Смена windows темы aero на classi c one ...

Но ни один из них не помог.

Вот Мой P C Технические характеристики:

  • windows: 7 ultimate
  • Версия PySide2: 5.14.2.1
  • Разрешение: 1360 X 768

Ответы [ 2 ]

2 голосов
/ 17 мая 2020

Мне довелось работать с Qt в прошлом году, и я использовал qml для создания UI-части моего приложения.

Qt предпочитает, чтобы мы использовали qml для создания UI, поскольку они написали движок UI, все лучше по сравнению со старыми движками.

В случае PyQt вы используете подход * только python, который обычно не рекомендуется, я не говорю, что версия qml идеальна по пикселям. он по-прежнему плохо работает при рисовании кривых (но это не то, что нам обычно требуется). Что касается вашей проблемы, qml подойдет вам (у него намного лучший рендеринг текста).

Возможно, вам будет немного сложно найти учебный ресурс для qml. Но, по крайней мере, попробуйте, и да, это намного проще, чем Python только подход.

2 голосов
/ 13 мая 2020

Попробуйте увидеть шрифты, используемые PyQt5:

import PyQt5
from pyQt5 import QtGui
dir(QtGui.QFont)

результат покажет все, что вам нужно для QFond, и шрифты можно использовать:

[..., 'Helvetica',...,'SansSerif',..., 'Serif',..., 'Times', ...

Вы можете попробовать добавьте свои собственные шрифты, но вам необходимо протестировать каждый шрифт.

Например, документация сообщает нам:

В Windows запрос на « Шрифт Courier »автоматически изменяется на« Courier New », улучшенную версию Courier, которая обеспечивает плавное масштабирование. Более старый растровый шрифт Courier можно выбрать, установив стратегию стиля PreferBitmap (см. SetStyleStrategy ()). Как только шрифт найден, остальные атрибуты сопоставляются в порядке приоритета:

fixedPitch()

pointSize() (see below)

weight()

style()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...