Решено: Масштабирование компонентов
Модератор: Модераторы
Решено: Масштабирование компонентов
В делфи в режиме firemonkey есть замечательный режим scale. О самостоятельно масштабирует все компоненты на форме (кнопки, тексты, мемо и прочее) при изменении размеров формы. Есть ли что то такое в lazarus?
Последний раз редактировалось azsx 04.12.2015 06:22:29, всего редактировалось 1 раз.
В Lazarus есть такая замечательная и удобная штука как привязки (Anchors).
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
WAYFARER, не забудьте еще и автосайз, иначе размеры текстовых надписей поедут.
Привязки и авторесайз это прекрасные инструменты, без них невозможно сделать полноценный интерфейс. И они обеспечивают некоторую адаптивность интерфейса при изменении DPI, однако это не имеет ни какого отношения к масштабированию интерфейса. Если при незначительном масштабировании ничего не заметно, то при масштабировании под экран высокой плотности вы получаете довольно убогую картину, отступы как внутри контролов так и заложенные между ними смотряться неадекватно, сами "шкурки" контролов отрисованны по низкому DPI и тонкие линии теряются, изображения на кнопках размером менее 32*32 становятся экранным мусором. Если интерфейс собран грамотно с привязками и авторесайзами - на функцианальном уровне вы получите сносную ситуацию, но в части читаемости, а так же и эстетики - картина печальная.
П.С.: Кстати, одной из причин убогости интерфейса самой среды Lazarus является пренебрежение этими инструментами, при использовании Lazarus на экранах высокой плотности - получаем артефакты в каждом первом, за исключением каждого 100500'го окна, а порой и полную кашу.
П.С.: Кстати, одной из причин убогости интерфейса самой среды Lazarus является пренебрежение этими инструментами, при использовании Lazarus на экранах высокой плотности - получаем артефакты в каждом первом, за исключением каждого 100500'го окна, а порой и полную кашу.
У меня 1920х1080, 32 бита.
Никаких артефактов не наблюдаю от слова - совсем.
Никаких артефактов не наблюдаю от слова - совсем.
sign А при чём тут 32 бита?
У вас обышный Full HD экран (не знаю правда какой диогонали), на таком (с 15 диагональю) я то же не наблюдаю артефактов в виде сползания, наложения, некорректного отображения компонентов из за отсутствия у них авторесайза и т. д. Такие вещи я наблюдаю на ноутбуке с экраном высокой плотности 3200*1800 пикселей на 13,3 дюймах диагонали.
У вас обышный Full HD экран (не знаю правда какой диогонали), на таком (с 15 диагональю) я то же не наблюдаю артефактов в виде сползания, наложения, некорректного отображения компонентов из за отсутствия у них авторесайза и т. д. Такие вещи я наблюдаю на ноутбуке с экраном высокой плотности 3200*1800 пикселей на 13,3 дюймах диагонали.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
qiviУ меня такое было когда не пользовался привязкой и автосайзом. Другое дело, что под линуксами зачастую приходилось перекомпилировать под каждую систему в которой работал.. но это не думаю что большая проблема для самопального проекта. О, кстати, а ведь для компонентов можно еще дать выбрать шрифт пользователю.
Лекс Айрин писал(а):У меня такое было когда не пользовался привязкой и автосайзом
Лекс Айрин, в моих "самопальных" проектах проблем с артифактами масштабирования интерфейса нет, потому что я с самого начала пользуюсь привязками и авторесайзом, однако привязки и авторесайз не равно масштабирование - но об этом я уже написал выше. С sign мы обсуждаем интерфейс самой среды Lazarus.
Лекс Айрин писал(а):Другое дело, что под линуксами зачастую приходилось перекомпилировать под каждую систему в которой работал..
Не сталкивался, хотя с большим количеством систем и не работаю. Только не понял как это к масштабированию относится?
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
qivi писал(а): Только не понял как это к масштабированию относится?
При масштабировании этих проблем не возникает. Впрочем, эту проблему можно будет решить ручным изменением шрифта.
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
qivi писал(а):Такие вещи я наблюдаю на ноутбуке с экраном высокой плотности 3200*1800 пикселей на 13,3 дюймах диагонали.
Наверное нет таких мониторов у разработчиков лазаря
PS
Я в момент выбора ноута предпочел взять с большей матрицей но меньшим разрешением, чем с высоким разрешением, но маленькой матрицей.
Всё равно он в основном в машине ездит, а не на плече висит....
Лекс Айрин писал(а):Впрочем, эту проблему можно будет решить ручным изменением шрифта.
Это не решение проблемы, это просто функциональный компромисс. И тут не надо ничего делать со стороны программы, всё сделано со стороны рабочего окружения ОС. Что касается полноценного масштабирования, я уже написал выше:
qivi писал(а):отступы как внутри контролов так и заложенные между ними смотряться неадекватно, сами "шкурки" контролов отрисованны по низкому DPI и тонкие линии теряются, изображения на кнопках размером менее 32*32 становятся экранным мусором.
Остаётся ждать GTK3... но там похоже при увеличении DPI ждут другие проблемы.
alexs писал(а):Я в момент выбора ноута предпочел взять с большей матрицей но меньшим разрешением
Всё правильно, нужно выбирать под свои задачи и предпочтения. Когда я выбирал мобильный ноутбук, экран высокой плотности был одним из моих критериев. У меня ещё есть "стационарный" заточен на производительность и в первую очередь графику, когда я его брал это было топовое железо, сейчас уже старичёк, но мне пока хватает.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
qivi писал(а):Это не решение проблемы, это просто функциональный компромисс.
Согласен... но надо как-то же выходить из положения.
qivi писал(а):отступы как внутри контролов так и заложенные между ними смотряться неадекватно,
Не было у меня такой проблемы. Может быть и потому, что я не гонюсь за разрешением на мониторе. А что оно лично у ВАС неадекватное это не проблемы программистов RAD. Это ВАШИ проблемы. При нормальном разрешении размер точки (пикселя) примерно одинаков для любого нормального монитора и, насколько я помню, не должен быть меньше 0,25мм. А для самых-самых есть настройка DPI.
Лекс Айрин писал(а):А что оно лично у ВАС неадекватное это не проблемы программистов RAD.
Ну это классика жанра что проблемы того кто с ними столкнулся, причём обязательно личные (это ж опен сурц) )))) Я не отрицаю что я столкнулся с этой проблемой, а значит это И моя проблема... Однако будучи моей "личной" проблемой, она происходит не от моих действий/отсутствия навыков/отсутствия знаний. Как вы заметили:
Лекс Айрин писал(а):А для самых-самых есть настройка DPI.
собственно о чём я и говорил вам на пост выше:
qivi писал(а):И тут не надо ничего делать со стороны программы, всё сделано со стороны рабочего окружения ОС.
однако GTK2 в применении DPI установленного в рабочем окружении системы ущербен и ограничивается увеличением шрифтов, так как он родом из тех времён когда никому в голову не приходило, что нужна действительная и полноценная поддержка DPI. Поэтому он не обрабатывает МАСШТАБИРОВАНИЕ ИНТЕРФЕЙСА, а всего лишь реализует функциональный компромисс, и вот как результат исключительно моя исключительно личная проблема:
qivi писал(а):отступы как внутри контролов так и заложенные между ними смотряться неадекватно, сами "шкурки" контролов отрисованны по низкому DPI и тонкие линии теряются, изображения на кнопках размером менее 32*32 становятся экранным мусором.
Это конечно не проблема программистов RAD, хотя никрофилирование на GTK2 не добавляет привлекательности RAD, однако вполне таки проблема непосредственно RAD Lazarus и задача её разработчиков:
qivi писал(а):при использовании Lazarus на экранах высокой плотности - получаем артефакты в каждом первом, за исключением каждого 100500'го окна, а порой и полную кашу.
qivi писал(а):артефактов в виде сползания, наложения, некорректного отображения компонентов из за отсутствия у них авторесайза и т. д.
Лекс Айрин писал(а):При нормальном разрешении размер точки (пикселя) примерно одинаков для любого нормального монитора и, насколько я помню, не должен быть меньше 0,25мм.
Ну это вы вообще зря... "нормальная"?... Правда? Как говорил лохматый немец: "Всё относительно". Экран высокого разрешения сегодня уже не редкость и цены хоть и выше но за облака не улетают (то биш это доступно), а смотреть на его картинку значительно приятнее, как фотография только немного подсвеченая. Так что если уж на то пошло такая точка более "нормальная".
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
qivi писал(а):Ну это вы вообще зря... "нормальная"?
Нормальная для глаз, конечно. При меньшем размере зерна глаз не может разглядеть точку/линию не напрягаясь и, при этом, на комфортном расстоянии от монитора. И есть довольно неплохой шанс заиметь очки, которые не при каждом ударе разбиваются. И если у тебя такое разрешение, то будь готов к перенастройкам и тюнингу операционки... ну и программ заодно. Такие экраны, как у Вас хороши для расширенной/виртуальной реальности.
qivi писал(а):sign А при чём тут 32 бита?
qivi писал(а):У вас обышный Full HD экран (не знаю правда какой диогонали), на таком (с 15 диагональю) я то же не наблюдаю артефактов в виде сползания, наложения, некорректного отображения компонентов из за отсутствия у них авторесайза и т. д. Такие вещи я наблюдаю на ноутбуке с экраном высокой плотности 3200*1800 пикселей на 13,3 дюймах диагонали.
It has a 21.5-inch diagonal viewable screen.
The screen area is 197.4 square inches.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
