LINUX.ORG.RU

Rust + GUI

 ,


1

7

@RazrFalcon, по мотивам треда Ищу годную либу для 2D графики на чём ты остановился? Мне бы правда с GUI на поиграться с хелловорлдами на расте… QPainter брать и не париться? Хочу графы рисовать, как Graphviz, только мышкой. Хотя даже не графы, деревья.

★★★★★

Последнее исправление: peregrine (всего исправлений: 1)

Ответ на: комментарий от vertexua

Это как? В html даже центрирование теста без тонны CSS не сделать. Я молчу про что-то сложнее. Банальное прилипание заголовка таблицы без костылей под каждый браузер не работает.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Какой там тонны? Берешь какой-то Materialize CSS и шарашишь копипасту с их сайта документации не приходя в сознание. Работать будет как часы во всех браузерах

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Не могу понять, зачем ты с ним пытаешься рассуждать рационально, он же просто жирно накидывает какие-то догмы ни о чем.

cdshines ★★★★★
()
Ответ на: комментарий от vertexua

Какой там тонны?

-------------------------------------------------------------------------------
 Language            Files        Lines         Code     Comments       Blanks
-------------------------------------------------------------------------------
 JavaScript             31        23523        16290         3917         3316
 Sass                   40         6169         4750          520          899
-------------------------------------------------------------------------------
 Total                  72        29783        21131         4437         4215
-------------------------------------------------------------------------------

И это только начало.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

А поверх него что? Angular, React, Vue? Там клеить много всего со всем и все равно будет много мутабельности и возможностей накосячить. Веб таки ужас и лучше максимально защищаться от его внутренего ада через такие абстракции как Elm

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Отличная ссылка. Спасибо. Именно то, что я искал.

Я вообще-то неделю потратил, но ничего толкового не нашёл. Один полурабочий, несовместимый треш. Мне нужно динамическое дерево, которое будет асинхронно пополнятся.

RazrFalcon ★★★★★
()
Ответ на: комментарий от vertexua

Ну пока поверх HTML. От зоопарка фреймворков у меня голова кругом идёт. Тем более я не веб разраб, поэтому не понимаю в чём у них разница.

много мутабельности

Ну у меня такой фобии нет.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Вот я и говорю - зачем пытаться рационально обсуждать вопросы со стороной, которая изначально на позиции неприятия агрессивного? Я тоже вот не люблю вебню, но понимаю, что есть и способы решения проблем, и качество, где нужно, тоже присутствует. Ради интереса, посмотри на svelte, это прямо пример вменяемости и прагматичного подхода без ударения в эзотерики.

cdshines ★★★★★
()
Ответ на: комментарий от RazrFalcon

Просто когда пытаешься что-то новое делать, мозг поначалу детектит попытку тратить больше энергии, чем обычно, и подсовывает неосознанные идеи вроде «фу, блять, какой отстой». Нужно просто этот момент поймать, признать себе, что «яннп != отстой» и попробовать что-то сделать. Как правило, за пару дней или, в запущенных случаях, недель, это проходит и наступает этап собственно решения проблем, а не борьбы с новым фреймворком мышления.

cdshines ★★★★★
()
Ответ на: комментарий от cdshines

Кстати, насчет svelte - за счет того, что они не накручивают виртуальный дом, а делают просто эффективный код на этапе компиляции, их выхлоп летает даже на pos-терминалах (я очень удивился, узнав, что сейчас на пос-терминалы пихают вебню, а не попиксельный монохромный вывод, но это не в тему). Есть просто куча библиотек, которые написаны вменяемыми людьми и вменяемо работают. А так да, за счет низкого порога входа шлака на js написано очень много, ну так это просто вопрос фильтрации.

cdshines ★★★★★
()
Ответ на: комментарий от cdshines

Проблема веба в том, что это эталон вырывания гланд через задний проход (уж не обессудьте). Мы берём движок для форматирования текста и пытаемся на его основе сделать GUI. Это настолько печально, что я даже не знаю с чего начать.

В Qt/QML в миллион раз вменяемее.

RazrFalcon ★★★★★
()
Ответ на: комментарий от theNamelessOne

Там пока что десктоп очень сырой. Сейчас больше для wasm удаеться писать.

Да, надо бы уже допилить документацию и выложить на crates.io, но пока что времени на это не хватает :-(

trex6 ★★★★★
()
Ответ на: комментарий от anonymous

На D один(!) человек

На гитхабе пишут, что 42.

dlangui screenshots, сравните с тем же conrod

dlangui пилится уже 6 лет. В те годы еще и раста нормального небыло. К тому же ценность декстопа для GUI приложений сильно уменьшилась за эти годы.

trex6 ★★★★★
()
Ответ на: комментарий от anonymous

99% либ на расте – это обвязки к сишным библиотекам

Да, за 48 лет на C написали очень много полезных библиотек. Не все они будут переписаны в одночасье на вменяемый язык. Так что приходится терпеть.

trex6 ★★★★★
()
Ответ на: комментарий от trex6

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

peregrine ★★★★★
() автор топика
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от peregrine

Но хотелось бы глянуть на то, что есть.

Оно сейчас живет в одном репозитории с другим проектом. Если интересно - могу поделиться ссылкой в почте.

trex6 ★★★★★
()
Ответ на: комментарий от RazrFalcon

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

cdshines ★★★★★
()
Ответ на: комментарий от cdshines

Я же выше писал про treeview и hexview. Я неделю провозился, в итоге за вечер запилил на Qt.

Речь идёт про создание своих виджетов, а не задание стиля очередной кнопки.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

А что в этом плохого? Самое кросс-платформенное решение на данный момент, которое на самом деле запустится везде.

silver-bullet-bfg ★★
()
Ответ на: комментарий от RazrFalcon

Тут надо стек уточнить. Нужные тебе компоненты наверняка есть под любой популярный framework, просто надо определиться с итоговым стеком. Иначе можно намешать 100500 framework’ов на одном проекте. Ну и плюс почитать как это собирать в electron, под все популярное опять же есть boilerplate.

з.ы.: во фронт пришлось пойти с бека, тоже сначала плевался. Потом понял, что проста надо научиться готовить, а задачи +/- схожие везде, как и подходы. Чаще всего просто не правильно поставлена сама задача

silver-bullet-bfg ★★
()
Ответ на: комментарий от RazrFalcon

Да ладно, тонны их - MongoDB Compas, VS Code (в него вообще недавно вхреначили интеграцию с Draw.io), Atom, Todoist, Slack, etc. Просто надо определиться, что нужно и убрать избыточность у себя с головы. Да, Qt был когда-то очень хорош и удобен, но сейчас он чаще всего избыточек. Пользователю, как правило, не нужно большая часть функционала + слишком большая цепочка действий отталкивает (по хорошему, всё должно быть в 1-2 клика).

silver-bullet-bfg ★★
()
Ответ на: комментарий от silver-bullet-bfg

VS Code

Ну это не HTML, как бы. По крайней мере он ведёт себя по другому. Хз что у них там под капотом.

сейчас он чаще всего избыточек

Для написания hello world? Да.

RazrFalcon ★★★★★
()
Ответ на: комментарий от trex6

На D один(!) человек

На гитхабе пишут, что 42.

Ну так если уж вы умеете пользоваться гитхабом, то вы прекрасно видите, что подавляющую часть коммитов сделал один [человек](https://github.com/buggins/dlangui/graphs/contributors). Остальные появились уже много позже.

dlangui пилится уже 6 лет. В те годы еще и раста нормального небыло.

И как это отменяет тот факт, что в разработке GUI (а по факту и других вещей) продуктивность D намного выше чем у Раста?

К тому же ценность декстопа для GUI приложений сильно уменьшилась за эти годы.

Без комментариев. Но вообще, иногда лучше ничего не писать, чем писать ерунду. No offence. И успеха вам в вашем проекте.

yetanother ★★
()
Ответ на: комментарий от RazrFalcon

Ну это не HTML, как бы. По крайней мере он ведёт себя по другому. Хз что у них там под капотом.

А что же? Это как раз HTML + JS обёрнутый в Electron. Поведение на основе web components можно сделать любое. Не вижу тут никаких проблем.

Для написания hello world? Да.

Для написания большей части UI. Если интерфейс требует освоения или чтения манов, то это плохой для рынка интерфейс. Печально, но уровень пользователя очень низкий, средний по больнице хомяк не будет разбираться с ПО больше пары минут и ему не придёт в голову бредовая идея залезть в manuals. Sad but true.

silver-bullet-bfg ★★
()
Ответ на: комментарий от RazrFalcon

Я твою задачу не знаю.

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

Ну и вторая гипотеза, что ты просто не правильно подобрал стек (в нём просто твоя задача была не нужна).

silver-bullet-bfg ★★
()
Ответ на: комментарий от RazrFalcon

Стек это - react+что-то, vue+что-то, angular+что-то. На чистом HTML и VanilaJS сделать можно, но придётся всё руками скорее всего.

А ты не пробовал Polymer? По идее для твоей задачи подойдёт (Electron + Polymer). Поведение стандартное у всех компонент стандартное для Material-приложений.

silver-bullet-bfg ★★
()
Ответ на: комментарий от silver-bullet-bfg

react+что-то, vue+что-то, angular+что-то

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

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Бери Ember или Angular, внезапно с любым тулкитом придётся разбираться.

silver-bullet-bfg ★★
()

Пожалуй вброшу немного касательно веба. Глядя на тред решил я посмотреть на https://github.com/Boscop/web-view, про который написал vertexua. Решил на примеры посмотреть. Увидел вариант с elm, глянул про него в википедии, смотрю у него онлайн редактор есть, открыл сайт, сайт свистит и пердит, ляпота, вижу кнопку тутотриала, тыкаю, смотрю на первый же пример, открываю его по ссылке, которая в их онлайн редактор внесена, там всего 2 кнопки и надпись между ними. Ну как можно налажать в тутотриале, оказывается очень даже можно — на одной кнопке -, на другой +, но кнопки блин совершенно разного размера, такое чувство что он от фазы пятой луны Сатурна зависит. Открыл в хроме, там другого размера кнопки, чем в тормозиле и тоже разные. Это вообще норма для веба или просто elm говнище? Такой же существенной разницы между размером символа + и - я не заметил.

ПРУФ

peregrine ★★★★★
() автор топика
Последнее исправление: peregrine (всего исправлений: 4)
Ответ на: комментарий от RazrFalcon

Сначала берешь DOM API и пишешь лисапеды. На следующей итерации смотришь как встретившиеся проблемы решены во фреймворках. Выкидываешь всё на помойку, делаешь чуть более правильно. И так далее вплоть до выращивания собственного фреймворка. Обычный путь пограмиста. Просто с десктопным гуи все это прошли в 90-х, и ты получил лучшие готовые решения на блюдечке. А гуи в вебне только недавно начали изобретать.

bread
()
Ответ на: комментарий от peregrine

У глифов есть физичиский bbox и стилистический. Видимо + шире -. Но да, с лайоутами в вебе какой-то треш. Да даже в QML какой-то ад сотворили. Было же нормально в Qt, но нет, нужно всё испортить.

RazrFalcon ★★★★★
()
Ответ на: комментарий от peregrine

Такие штуки как Elm, React, Angular не управляют внешним видом, только поведением.

Внешний вид решает CSS, в том примере его нету и используется дефолтные стили браузера, которые исторически разные. Тебе нужно добавить какой-то Twitter Bootstrap или Materialize CSS. Если они слишком жырные - Pure CSS.

Elm управляет элементами. Ему ничего не стоит сгенерировать какой-то <div>, <button> и нацепить на него класс который ты укажешь. А класс уже идет из CSS фреймворка, которых куча.

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от peregrine

Ну как можно налажать в тутотриале, оказывается очень даже можно — на одной кнопке -, на другой +, но кнопки блин совершенно разного размера, такое чувство что он от фазы пятой луны Сатурна зависит

Если поставить для кнопок font-family: monospace;, то будут одинакового.

Открыл в хроме, там другого размера кнопки, чем в тормозиле и тоже разные

Это различия в браузерных стилях по умолчанию.

Итого тут дело в CSS (вернее в его отсутствии в данном примере), Elm тут не при чём.

theNamelessOne ★★★★★
()
Ответ на: комментарий от theNamelessOne

Ага. То есть для разработки UI «более простым» способом, надо всегда обмазываться CSS-ом? Ну что же, это успех, я так считаю.

peregrine ★★★★★
() автор топика
Ответ на: комментарий от peregrine

Обмазаться не в том смысле как ты думаешь. Классы уже написаны в этих фреймворках. Там что-то в духе <button class="my-framework-zae**s-button"> и кнопка автоматически выглядит круто. Труда не больше чем в Qt.

https://purecss.io/buttons/

https://materializecss.com/buttons.html

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.