Ответ 1
Если вы действительно продали использование Designer, возможно, стоит подумать об обновлении таблиц стилей программным способом. Это действительно хакерское исправление, которое я реализовал в приложении, которое мне пришлось развернуть на нескольких платформах. Это будет означать использование измерений px
для всего, поскольку это единственное широко поддерживаемое измерение.
Как вы, возможно, знаете, шрифты Qt не поддерживают относительные единицы размера экрана em
:
Из документации Qt5: https://doc.qt.io/qt-5/stylesheet-reference.html Qt ограничен размерами шрифта в pt и px, а любой другой размер должен быть в px, em или ex.
Какой бы монитор и его спецификации вы не разработали, вы будете довольны стандартом вашего приложения. В конструкторе ваших окон вы можете рассчитать масштабный коэффициент как отношение DPI нового устройства, деленное на "стандартный DPI", на котором, как вы знаете, ваше приложение выглядит хорошо. Оттуда вам просто нужно будет умножить таблицы стилей виджетов/шрифтов на этот масштабный коэффициент. Это может показаться громоздким (и это определенно так), но это будет означать итерацию QString, возвращаемой ui-> myWidget-> getStyleSheet(), и масштабирование всех числовых экземпляров, предшествующих подстроке px
.
Это сработало для меня при увеличении/уменьшении шрифтов и размеров виджетов, но с явно добавленными накладными расходами. Мне также очень нравится простота использования Designer, но, на самом деле, создание масштабируемого пользовательского интерфейса остается трудным в Designer. Переход на программный дизайн пользовательского интерфейса закончился заменой моего хакерского исправления для моего приложения.
Примечание. Также важно следить за тем, какие шрифты вы используете. Если ваш шрифт не является системным шрифтом, значение px
будет иметь неожиданное поведение, поскольку шрифт по умолчанию заменит его.