Russian Qt Forum

Qt => Вопросы новичков => Тема начата: VVN от Апрель 13, 2015, 15:01



Название: Как правильно сделать масштабирование приложения под разные разрешения дисплея.
Отправлено: VVN от Апрель 13, 2015, 15:01
Здравствуйте.

Сделал приложение на Qt 4.8.4.
Делал на мониторе 23 дюйма с разрешением 1920х1080.
Дело в том что в приложении очень много лейбелов и полос редактирования.

При запуске на том же ноутбуке разрешение 1600х900 получается фигня полная.
Текст съезжает.
Полосу прокрутки ставить не хочется.

Скажите в какую сторону копать.

Что то не могу найти ясного ответа.

Сам думаю, что нужно  при запуске программы проверять разрешение системы.
После чего настраивать размер шрифта в окнах.

Подскажите как правильно масштабировать приложение..

Еще вопрос есть ли где почитать про  sizePolicy то что нашел не дает полного понимания.
Вернее сказать я им пользуюсь но не знаю насколько правильно.



Название: Re: Как правильно сделать масштабирование приложения под разные разрешения дисплея.
Отправлено: Bepec от Апрель 13, 2015, 15:10
Если у вас всё съезжает, то следует пользоваться компоновкой.


Название: Re: Как правильно сделать масштабирование приложения под разные разрешения дисплея.
Отправлено: gil9red от Апрель 13, 2015, 15:16
если много лейблов и полос редактор смотрите в сторону хотя бы QGridLayout, а лучше QFormLayout  ;)


Название: Re: Как правильно сделать масштабирование приложения под разные разрешения дисплея.
Отправлено: VVN от Апрель 13, 2015, 15:22
если много лейблов и полос редактор смотрите в сторону хотя бы QGridLayout, а лучше QFormLayout  ;)

Да дело в том что все в QGridLayout и сделанно.
В форме вся компоновка произведена полностью.


Название: Re: Как правильно сделать масштабирование приложения под разные разрешения дисплея.
Отправлено: Bepec от Апрель 13, 2015, 16:21
Вы просите решить проблему и не показываете её.
Не надо так!!!


Название: Re: Как правильно сделать масштабирование приложения под разные разрешения дисплея.
Отправлено: Igors от Апрель 13, 2015, 16:52

Скажите в какую сторону копать.

Что то не могу найти ясного ответа.

Сам думаю, что нужно  при запуске программы проверять разрешение системы.
После чего настраивать размер шрифта в окнах.
Думаете правильно, просто недооцениваете проблему. Я потратил месяц (и еще минимум месяц на отладку) чтобы разрулить для UI БЕЗ лайаутов (нужна была совместимость со старым UI без Qt). А у Вас лайауты есть - счастливчик! Придется всего неск дней потратить.

QLayout и QSizePolicy реально работают, ни одного бага я не находил. Ничего кроме букваря (assisiant) не требуется. Да, некоторые вещи лично для меня не интутивны, типа "ожидал так, а оно...", приходилось делать тестовые примеры и экспериментировать - но в конце-концов работало как указано в доке.

В общем серьезнее отнеситесь, пример, код - все получится.  А не так себе "текст съезжает" (с пол-пинка не пошло)


Название: Re: Как правильно сделать масштабирование приложения под разные разрешения дисплея.
Отправлено: VVN от Апрель 13, 2015, 19:47
Вы просите решить проблему и не показываете её.
Не надо так!!!

Да вся компановка в Designer сделано не знаю как ее показать.




Название: Re: Как правильно сделать масштабирование приложения под разные разрешения дисплея.
Отправлено: VVN от Апрель 13, 2015, 19:50
Думаете правильно, просто недооцениваете проблему.
В общем серьезнее отнеситесь, пример, код - все получится.  А не так себе "текст съезжает" (с пол-пинка не пошло)

Сегодня целый день провел за компановкой и игрался с sizePolicy небольшие сдвиги есть.
Так же изменил размер шрифта в более мелкую сторону.

QLayout и QSizePolicy реально работают, ни одного бага я не находил. Ничего кроме букваря (assisiant) не требуется. Да, некоторые вещи лично для меня не интутивны, типа "ожидал так, а оно...", приходилось делать тестовые примеры и экспериментировать - но в конце-концов работало как указано в доке.

Я просто думал что есть некий общий подход к проектированию для разных разрешений экрана.
Типа как это сделано в Андроиде. Для разных разрешений можно сделать разные лайауты.
И потом все автоматом решается.

Вот например есть у меня экран 23 дюйма 1920х1080 для него можно вывести текст 24 шрифтом и все помешается.

Для ноута 1600х900 это сильно круто и нужен шрифт 16.


Название: Re: Как правильно сделать масштабирование приложения под разные разрешения дисплея.
Отправлено: billy4685 от Апрель 14, 2015, 00:10
Я тоже столкнулся был с подобной проблемой. Я тогда сделал что-то подобное "резиновой формы", используя QGridLayout, QVBoxLayout и QHBoxLayout. Ну у меня главная форма окна была на весь экран, и баги замечались на других расширениях. Искал как решить эту проблему, тогда не нашел. Я тогда выкрутился тем, что  все размеры компонентов окна задавал относительно от размера экрана. Для текста подбирал разный текст под разные расширения экрана (смотрел какие размеры у раскрывшейся на весь экран формы и брал нужный размер шрифта). Запаристо конечно, но работало).


Название: Re: Как правильно сделать масштабирование приложения под разные разрешения дисплея.
Отправлено: Igors от Апрель 14, 2015, 06:33
По поводу шрифтов. Хороший тон - дать пользователю возможность выбора. Угодить всем "автоматом" не удается. Напр мне нужен шрифт побольше (уже подслеповат), другому наоборот помельче, "чтобы больше влазило"