#qt #qt5
#qt #qt5
Вопрос:
По независящим от меня причинам виджет должен отображаться без сглаживания. Раньше все это было написано с помощью собственного написанного спагетти-кода с подсказками по рендерингу:
painter.setRenderHint(QPainter::Antialiasing, false);
painter.setRenderHint(QPainter::SmoothPixmapTransform, false);
Теперь я переписываю этот виджет как унаследованный от QWidget и использую собственные QLabel, QButton и таблицу стилей QTs. Есть ли способ отключить сглаживание для виджета и его дочерних элементов?
Комментарии:
1. Речь идет только о сглаживании текста / шрифта? Если да, QFont
setStyleStrategy(QFont::NoAntialias);
может быть решением.2. Я боюсь, что это также повлияет на границы виджета. Для шрифта вы имеете в виду вставку
auto f = font(); f.setStyleStrategy(QFont::NoAntialias); setFont(f);
в каждый дочерний конструктор виджетов?3.Да, но (в зависимости от вашего приложения), возможно, вы можете обойтись без настройки шрифта для всего приложения сразу с помощью
QApplication::setFont()
doc.qt.io/qt-5/qapplication.html#setFont . Но, конечно, если вам также нужно установить это для границ, это (по крайней мере, само по себе) не решит вашу проблему…