Russian Qt Forum
Ноябрь 24, 2024, 16:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как правильно сделать масштабирование приложения под разные разрешения дисплея.  (Прочитано 8261 раз)
VVN
Чайник
*
Offline Offline

Сообщений: 52


Просмотр профиля
« : Апрель 13, 2015, 15:01 »

Здравствуйте.

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

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

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

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

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

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

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

Записан
Bepec
Гость
« Ответ #1 : Апрель 13, 2015, 15:10 »

Если у вас всё съезжает, то следует пользоваться компоновкой.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #2 : Апрель 13, 2015, 15:16 »

если много лейблов и полос редактор смотрите в сторону хотя бы QGridLayout, а лучше QFormLayout  Подмигивающий
Записан

VVN
Чайник
*
Offline Offline

Сообщений: 52


Просмотр профиля
« Ответ #3 : Апрель 13, 2015, 15:22 »

если много лейблов и полос редактор смотрите в сторону хотя бы QGridLayout, а лучше QFormLayout  Подмигивающий

Да дело в том что все в QGridLayout и сделанно.
В форме вся компоновка произведена полностью.
Записан
Bepec
Гость
« Ответ #4 : Апрель 13, 2015, 16:21 »

Вы просите решить проблему и не показываете её.
Не надо так!!!
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Апрель 13, 2015, 16:52 »


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

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

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

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

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

Сообщений: 52


Просмотр профиля
« Ответ #6 : Апрель 13, 2015, 19:47 »

Вы просите решить проблему и не показываете её.
Не надо так!!!

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


Записан
VVN
Чайник
*
Offline Offline

Сообщений: 52


Просмотр профиля
« Ответ #7 : Апрель 13, 2015, 19:50 »

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

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

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

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

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

Для ноута 1600х900 это сильно круто и нужен шрифт 16.
Записан
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« Ответ #8 : Апрель 14, 2015, 00:10 »

Я тоже столкнулся был с подобной проблемой. Я тогда сделал что-то подобное "резиновой формы", используя QGridLayout, QVBoxLayout и QHBoxLayout. Ну у меня главная форма окна была на весь экран, и баги замечались на других расширениях. Искал как решить эту проблему, тогда не нашел. Я тогда выкрутился тем, что  все размеры компонентов окна задавал относительно от размера экрана. Для текста подбирал разный текст под разные расширения экрана (смотрел какие размеры у раскрывшейся на весь экран формы и брал нужный размер шрифта). Запаристо конечно, но работало).
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #9 : Апрель 14, 2015, 06:33 »

По поводу шрифтов. Хороший тон - дать пользователю возможность выбора. Угодить всем "автоматом" не удается. Напр мне нужен шрифт побольше (уже подслеповат), другому наоборот помельче, "чтобы больше влазило"
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.