|
|||||||
Как изменить размер шрифтов, иконок и экранных элементов в Qt-приложении?
Время создания: 21.01.2025 18:05
Текстовые метки: linux, qt, настройка, изменить, размер, масштаб, dpi, шрифт, иконка, надпись, системная, тема, оформление, x11, DE, рабочий, стол
Раздел: Компьютер - Программирование - Язык C++ (Си++) - Библиотека Qt - Графика
Запись: xintrea/mytetra_syncro/master/base/1737471918b9e5o4uhyf/text.html на raw.github.com
|
|||||||
|
|||||||
Часто бывает так, что Qt-приложение, особенно установленное из сторонних источников, не воспринимает системную тему оформления и не использует размеры шрифтов, которые заданы в настройках графической среды. Из-за этого шрифты и иконки в приложении выглядят слишком мелко или слишком крупно. Как можно изменить масштабирование этих экранных элементов в уже собранном Qt-приложении? Начиная с версии 5.6 и выше работает следующий рецепт. Перед вызовом Qt-приложения надо установить специальные переменные окружения, которые автоматически обрабатывает любое Qt-приложение. export QT_AUTO_SCREEN_SCALE_FACTOR=0 export QT_ENABLE_HIGHDPI_SCALING=0 export QT_SCALE_FACTOR=2.0 export QT_FONT_DPI=120 qtapp параметры_приложения Или в одну строку: env QT_AUTO_SCREEN_SCALE_FACTOR=0 QT_ENABLE_HIGHDPI_SCALING=0 QT_SCALE_FACTOR=2.0 QT_FONT_DPI=120 qtapp параметры_приложения Первые две переменных отключают возможные масштабирования, которые могут возникнтуть, если Qt посчитает, что DPI экрана выше какого-то порога. Переменная QT_SCALE_FACTOR задается в виде числа с плавающей точкой. Это коэффициент масштабирования. Лучше его задавать в виде целых значений. Если значение будет не целое, тогда в интерфейсе при перемещении, например, всяких линий разделения виджетов, будет видно, что линии в какой-то момент пропадают и появляются. При целых значениях такого не наблюдается. Переменная QT_FONT_DPI задает DPI, в котором будут рендериться шрифты. Обычно, QT_SCALE_FACTOR задается как 2.0, чтобы иконки увеличились ровно в два раза и все экранные элементы выглядели четко из-за целочисленного масштабирования. А через QT_FONT_DPI регулируется размер надписей. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|