Решено: Масштабирование компонентов

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Масштабирование компонентов

Сообщение Лекс Айрин » 02.12.2015 09:49:43

qivi писал(а): (это ж опен сурц) ))))

угу...а лицензионное соглашение проприетарщиков, конечно, само очарование.

qivi писал(а):однако GTK2 в применении DPI установленного в рабочем окружении системы ущербен и ограничивается увеличением шрифтов, так как он родом из тех времён когда никому в голову не приходило, что нужна действительная и полноценная поддержка DPI.

В ХР тоже самое... и пусть оно так и будет. Менять шило на мыло мы не согласны.


qivi писал(а):Такие вещи я наблюдаю на ноутбуке с экраном высокой плотности 3200*1800 пикселей на 13,3 дюймах диагонали.


Кстати, а какая у Вас частота обновления экрана? Может, она просто выставлена неправильно.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Масштабирование компонентов

Сообщение qivi » 02.12.2015 12:39:24

Лекс Айрин писал(а):угу...а лицензионное соглашение проприетарщиков, конечно, само очарование.

Да я не про лицензии, это просто классика для опенсурц сообществ: "Проблемы? Это только твои личные проблемы".

Лекс Айрин писал(а):В ХР тоже самое... и пусть оно так и будет. Менять шило на мыло мы не согласны.

GTK2 труп на системе искусственного жизнеобеспечения, последние годы он еле-еле поддерживается только никрофилами из проекта MATE, да и те своим микро сообществом заняты миграцией на GTK3, GTK3 уже лет пять как реальность, и кстати в ней решена проблема с масштабированием DPI, хотя там есть своеобразные нюансы. Это не размен шила на мыло, это даже не выбор, это единственный и верный, и возможный путь. Можно конечно поорать с трибуны мол: "МЫ, в сообществе FPC+Lazarus, - самые умные и клали МЫ на это зло в лице GTK3, ибо это размен шила на мыло и МЫ не согласны"..., но это просто самодурство, чудо не свершится, искусственное жизнеобеспечение GTK2 не будет вечным и вопрос состоит лиш в том, произойдёт переход (поддержка) с GTK 2 на 3 в Lazarus, как это было при переходе с GTK 1 на 2, года за полтора - два до фактического прекращения развития и поддержки GTK2 и Lazarus опять будет глотать пыль среди отсталых инструментов в самом конце, или это произойдёт в какие то адекватные сроки.

Лекс Айрин писал(а):Кстати, а какая у Вас частота обновления экрана? Может, она просто выставлена неправильно.

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

sign глубина цветопередачи ни как не влияет на плотность изображения ))) Оно зависит только от разрешения и размера матрицы.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Масштабирование компонентов

Сообщение Лекс Айрин » 02.12.2015 13:51:11

qivi писал(а):это просто классика для опенсурц сообществ:

Это классика для любого програмного проекта. Не нравится win10... это твои проблемы. Жри, что дают. Если программист будет воплощать все хотелки, то любая программа разрастется в монстра, который мало кому нужен. в опенсорс сообществах просто на этом заостряют внимание.
qivi писал(а):Это не размен шила на мыло, это даже не выбор, это единственный и верный, и возможный путь.

Верный путь не обязательно один.

qivi писал(а):Кажется вы меня не так поняли. Под артефактами я имел в виду не артефакты графической подсистемы ПК, а то что происходит с интерфейсом в окнах при масштабировании компонентов, если он скомпонован без привязок и авторесайза.


А ВЫ хотели чтобы было по другому? Что делаете, то и получаете. Привязки и автосайз придумали чтобы избежать этих артефактов. Вы таки меня удивили.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Масштабирование компонентов

Сообщение qivi » 02.12.2015 14:25:46

Лекс Айрин писал(а):Жри, что дают. Если программист будет воплощать все хотелки, то любая программа разрастется в монстра, который мало кому нужен.

Мне ясен ваш крик души. Но речь то о предмете масштабирования интерфейса и проблемах с ним связанными. Наша с вами беседа даже не касалась какого то проекта, но одно только слово: "проблема", - вызвало у вас рефлексорную реакцию без каких либо акцентов..., это и есть классика жанра )))


Лекс Айрин писал(а):Верный путь не обязательно один.

Давайте предметно, без абстракций и псевдофилософии. "Путь" поддержки GTK выбран разработчиками Лазаруса, а следовательно пока они официально не отказались от её поддержки, все вопросы связанные с этой самой поддержкой естественны и неотъемлемы... и уж нижайшие прошу меня простить, но направленны они, по очевидным причинам, могут быть только разработчикам Lazarus (LCL).


Лекс Айрин писал(а):Вы таки меня удивили.

Лекс Айрин, вы читаете мои сообщения по диагонали и не отслеживая нить беседы сразу отвечаете на последнее сообщение? Удивление ни к чему.
Лекс Айрин писал(а):А ВЫ хотели чтобы было по другому? Что делаете, то и получаете. Привязки и автосайз придумали чтобы избежать этих артефактов.

Дело лиш в том что я ничего для этого не делаю... ибо речь то идёт об интерфейсе самой среды разработки Lazarus (просмотрите нашу беседу). Как вы совершенно справедливо заметили, что привязки и автосайз придумали чтобы избежать этих артефактов, но весь парадокс заключается в том что их, пускай даже не изобрели, но как минимум реализовали и забили на них в собственном продукте одни и те же разработчики Lazarus.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Масштабирование компонентов

Сообщение Лекс Айрин » 02.12.2015 14:46:49

qivi писал(а):Наша с вами беседа даже не касалась какого то проекта, но одно только слово: "проблема", - вызвало у вас рефлексорную реакцию без каких либо акцентов..., это и есть классика жанра )))

Почему не рассматриваем? Lazarus это тоже проект. Причем очень сложный.

Добавлено спустя 39 минут 46 секунд:
И я просто пояснил, что это нормальная реакция. (принцип "как есть" вообще не гарантирует наличие у программы какого-либо функционала).

qivi писал(а): но весь парадокс заключается в том что их, пускай даже не изобрели, но как минимум реализовали и забили на них в собственном продукте одни и те же разработчики Lazarus.


Странно... у ВАС лично забили, а у других работает. То, что периодически что-то работает не так это норма для альфа версии. Лично я таких глюком видел очень мало. Из последних это очень плохая(судя по всему, медленная) отрисовка в окне Параметры проекта/параметры компилятора/параметры пользователя/все параметры но это надо постараться туда залезть. Все остальные глюки были кратковременны и/или не влияющие сильно на удобство пользования. Один глюк лечился правкой исходника, а при следующем обновлении я просто перезалил снапшот полностью с нуля. По сравнению с вордом не открывающим созданный им же пять минут назад файл, это полная ерунда. И ведь эту ошибку не исправят никогда.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Масштабирование компонентов

Сообщение qivi » 02.12.2015 17:45:27

Лекс Айрин писал(а):принцип "как есть" вообще не гарантирует наличие у программы какого-либо функционала

Ну вообще это уже совсем в другую тему отклоняемся, но в целом я с данным высказыванием согласен, мы же с вами просто обсуждаем эту проблему я ничего ни от кого не требую, но в то же время не грех говорить о вещах как они есть. Ну и добавлю ремарочку, даже при принципе "как есть" публичный оферт о функционале хоть что то да значит.

Лекс Айрин писал(а):Странно... у ВАС лично забили, а у других работает.

В том и дело что не у меня лично, вы просто не сталкивались. Поставьте в системе DPI ~250, запустите Lazarus и полазите по разным окошкам: настройки, управление пакетами и т. д.

Преимущественно интерфейс Лазаруса (на первый взгляд и не скажешь но на поверку это очень много окошек и фреймов) собран не за счёт привязок между компонентами (Anchors), а за счёт вложенности контейнеров и Align'гов, да и авторесайзом то же не грешили повсеместно. Поэтому интерфейс лазаруса не выдерживает значительного изменения DPI (масштабирования).
Я написал соответствующий багрепорт и оказался не первым по этой теме, даже хотел пересобрать все окна и фреймы лазаруса сам и для начала пересобрал их значительную часть (всю папку lazarus/ide за исключением вложенных поддиректорий), приложил их к своему багрепорту, но я не умею пользоваться SVN что бы сгенерировать патч, поэтому учитывая те изменения которые произошли в интерфейсе за то время пока я их пересобирал, свести их не удалось и на это забили, ну и я в итоге забил.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Масштабирование компонентов

Сообщение Лекс Айрин » 02.12.2015 18:44:26

qivi писал(а):Поставьте в системе DPI ~250, запустите Lazarus и полазите по разным окошкам: настройки, управление пакетами и т. д.


угу... это напоминает анекдот про мужика и женскую баню (а вы на шкаф залезьте и все увидите).

qivi писал(а):собран не за счёт привязок между компонентами (Anchors), а за счёт вложенности контейнеров и Align'гов,


В достаточно большом проекте (когда количество компонент достигает сотни и более) не всегда можно адекватно пользоваться привязками. Да и у авторесайза появляются свои ограничения.

Даже в своем проектике, (с учетом того, что некоторые компоненты динамически изменяют видимость и положение) я так и не смог добиться уменьшения количества панелей. (как минимум от пары стоило бы точно избавиться.) Конечно, если бы можно было менять динамически привязки, то я, думаю, это сумел бы сделать.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Масштабирование компонентов

Сообщение qivi » 02.12.2015 18:58:59

Лекс Айрин писал(а):угу... это напоминает анекдот про мужика и женскую баню (а вы на шкаф залезьте и все увидите).

Ну и что вы этим хотите сказать? Расчётное DPI моего монитора, не помню точо чуть больше 270. И это не касается только моего монитора, это касается всех мониторов высокой плотности, которые как я уже говорил не редкость и значительно приятнее в использовании... при условии использования современной библиотеки GUI и грамотно разработанных интерфейсов программ.

Лекс Айрин писал(а):В достаточно большом проекте (когда количество компонент достигает сотни и более) не всегда можно адекватно пользоваться привязками. Да и у авторесайза появляются свои ограничения.

Ерунда, пользуюсь только привязками и в достаточно загруженных интерфейсах, и с динамическим отображением/скрытием компонентов, и с компоновкой окна с динамическими загружаемыми/выгружаемыми фреймами, - нет никаких причин скатываться на необоснованные матрёшки контейнеров и Align'ги.

Лекс Айрин писал(а):Конечно, если бы можно было менять динамически привязки, то я, думаю, это сумел бы сделать.

Я лично не гнушаюсь это делать рантайм как минимум для крупных элементов интерфейса или создавать комбинированные целевые компоненты в случае их неоднократного повторения в программе, так же в них используя динамические привязки.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Масштабирование компонентов

Сообщение Лекс Айрин » 02.12.2015 19:26:37

qivi писал(а):Ну и что вы этим хотите сказать?


Я уже сказал. Вот когда такое DPI будет нормой, вот тогда и надо будет делать под него проги. Толь ко вот как быть с тем, что такое DPI останется, по своей сути, неиспользованным? Формы то будут тогда делать, фактически, для виртуального монитора с меньшим DPI. (Глаза, к сожалению, не бинокль, а болят они при этом очень сильно, поверьте очкарику со стажем). Больно это напоминает придумывание трудностей чтобы потом их мужественно преодолевать.

qivi писал(а):Я лично не гнушаюсь это делать рантайм как минимум для крупных элементов интерфейса


Я тоже. просто не знаю пока как целенаправленно менять привязки, не перенося тупо компоненты на другое место. Со временем разберусь. На функционал это не особо влияет. Да и при вставке какой-нибудь кнопки в середину компонента перетряхивать привязки нескольких компонент не айс. Всегда есть шанс запутаться.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Масштабирование компонентов

Сообщение qivi » 02.12.2015 20:10:49

Лекс Айрин писал(а):Я уже сказал. Вот когда такое DPI будет нормой

Дак всё уже состоялось... оно уже стало нормой... и даже более того, современные GUI библиотеки (GTK3) просто поддерживают масштабирование интерфейса исходя из параметра DPI, как следствие если программа использует (для примера) тот же GTK3 то она корректно отобразится и на мониторе 640*480 100 диогонали )))) и на мониторе 3200*1800 13,3... и ни к чему себя накручивать, ждать когда рак на горе свистнет и так всё усложнять.
Лекс Айрин писал(а):Толь ко вот как быть с тем, что такое DPI останется, по своей сути, неиспользованным? Формы то будут тогда делать, фактически, для виртуального монитора с меньшим DPI.

Это как раз похоже на те специфические особенности о которых я и говорил про GTK3 )))
Лекс Айрин писал(а):Больно это напоминает придумывание трудностей чтобы потом их мужественно преодолевать.

Как видите в принципе то... всё преодолели до нас ))) бери да пользуйся... но не ранее чем в лазарусе появится поддержка современных гуёвых библиотек.

А если мы говорим про сам лазарус, про его интерфейс и про недостатки его компоновки, то в нём уж много лет как есть готовые, прекрасные, лично мною горячё любимые инструменты которые решают эту проблему (артефакты при значительном масштабировании)... и тут я вообще не вижу никаких проблем кроме принципиального желания оставаться хуже чем могло бы быть на самом деле... причём могло бы быть без приложения каких то титанических усилий и нереальных временных затрат.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Масштабирование компонентов

Сообщение Лекс Айрин » 02.12.2015 20:26:03

qivi писал(а):А если мы говорим про сам лазарус, про его интерфейс и про недостатки его компоновки,

А вы знаете, что программист обязан проектировать программу исходя из наиболее слабой по всем параметрам конфигурации? Иначе получается как с вистой, которая, фактически, сильно подпортила репутацию MS.

Как я могу пользоваться программой зная, что у прогера тачка позволит запустить (только за счет кулера) воздушный шар?
qivi писал(а):и тут я вообще не вижу никаких проблем кроме принципиального желания оставаться хуже чем могло бы быть на самом деле... причём могло бы быть без приложения каких то титанических усилий и нереальных временных затрат.


На самом деле, переделка дизайна программы, альфа версией которой пользуются много людей это не тот труд, который стоит делать быстро. Не поймут-с. И это на самом деле тяжело.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Масштабирование компонентов

Сообщение qivi » 02.12.2015 20:39:58

Тут явно какое то недопонимание.
Лекс Айрин писал(а):А если мы говорим про сам лазарус, про его интерфейс и про недостатки его компоновки,

То есть я говорю о том, что интерфейс Лазаруса собранный на матрёшках контейнеров и Align'гах, нужна пересобрать на привязках и где надо применить авторесайз... да, наверное тут будет чуть-чуть побольше обработок... но это вообще не принципиальная нагрузка... не сомневаюсь что этой нагрузки не почувствует даже ARM кортекс 7 начального уровня в самом захудалом китайском нетбуке где куллер вообще отсутствует за ненадобностью )))

Лекс Айрин писал(а):На самом деле, переделка дизайна программы,

О нет, нет... я не в коем случае не говрю о переделки дизайна интерфейса, это задача сугубо разработчиков, я не посягаю на святая святых. Я только говорю о пересборке всего интерфейса лазаруса как он есть сейчас, без изменения его дизайна но с повсеместным использование привязок и где надо авторесайза в замен имеющимся на сегодня Align'ам и в сложных окнах/фреймах матрёшкам контейнеров.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Масштабирование компонентов

Сообщение azsx » 03.12.2015 08:21:05

И они обеспечивают некоторую адаптивность интерфейса при изменении DPI, однако это не имеет ни какого отношения к масштабированию интерфейса. Если при незначительном масштабировании ничего не заметно, то при масштабировании под экран высокой плотности вы получаете довольно убогую картину, отступы как внутри контролов так и заложенные между ними смотряться неадекватно, сами "шкурки" контролов отрисованны по низкому DPI и тонкие линии теряются, изображения на кнопках размером менее 32*32 становятся экранным мусором. Если интерфейс собран грамотно с привязками и авторесайзами - на функцианальном уровне вы получите сносную ситуацию, но в части читаемости, а так же и эстетики - картина печальная.

то есть пока это никак не исправить, жду gtk3 признаю, что если кто то юзает большие разрешения (у меня также fullhd) - то у них проблема с красивостями. Пока firemonkey круче, для интерфейсов. Верно?
Или есть какой то выход?
зы
почему у вас шрифт масштабируется на кнопках, у меня не масштабируется.
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: Масштабирование компонентов

Сообщение Лекс Айрин » 03.12.2015 09:46:40

qivi писал(а):О нет, нет... я не в коем случае не говрю о переделки дизайна интерфейса,

Не каждая переделка дизайна это обязательно видимый процесс. Это как в движке самиздата... вроде бы компоновка простая, как лист формата А4, но сама страница отображается практически везде и тянется почти как бубль-гум. Где гарантия, что этого добьешься пересобрав Лазаря только на ресайзе и привязках? То, что он у тебя лично работает и не едет это не аргумент.

qivi писал(а):не сомневаюсь что этой нагрузки не почувствует даже ARM кортекс 7 начального уровня в самом захудалом китайском нетбуке где куллер вообще отсутствует за ненадобностью )))

кто знает, кто знает... всякое может быть...
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Масштабирование компонентов

Сообщение qivi » 03.12.2015 13:00:17

Лекс Айрин писал(а):Где гарантия, что этого добьешься пересобрав Лазаря только на ресайзе и привязках?

Окнам и фреймам Лазаруса и не надо тянуться... вроде как... им нужно адаптироваться под любое окружение, и привязки с этой задачей прекрасно справляются и не только лично у меня. А так же без всяких гарантий можно констатировать факт (можно и не констатировать, факт от этого не изменится))) ), интерфейс Лазаруса в сегодняшнем исполнении не имеет достаточных адаптивных качеств - собственно в том числе эту проблему мы и обсуждали.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 234

Рейтинг@Mail.ru