LINUX.ORG.RU

Rust + GUI

 ,


1

7

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

★★★★★

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

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

Ну а ты какой фреймворк/стек посоветуешь для GUI на вебне? Что сам используешь? Чтобы стильно, модно, молодёжно и хипстеры радостные смузи пили.

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

Это только CSS, или я не прав? Под стеком я готовую связку имею ввиду, наичная от движка готовые кнопки, меню лепить и контроллы, заканчивая намазыванием стилей. (Ну и внутри наверняка какой-то сахар из библиотек, чтобы не на голом js писать)

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

На практике всегда клеят два фреймворка - один для управления DOM и его не волнует как все выглядит, он общается просто с обычными HTML элементами - кнопками, полями ввода, другой для внешнего вида - CSS фреймворк.

Первое - Elm. Второе - MaterializeCSS или Pure CSS

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

Спасибо. Ещё такой нубский вопрос, графику в браузере лепишь или сразу в Boscop/web-view? Чтобы не тестировать второй раз?

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

Уже джва года жду flutter-rs

Но вообще можно взять Yew, засунуть его в web-view и получится приложение для десктопа, с перспективой запуска в браузере.

Типа такого https://github.com/Extrawurst/rust-webview-todomvc-yew

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

Можно глянуть wxrust, но там для твоей задачи всё равно биндинги-через-биндинги (rust->C->c++->wx->Cairo), и ещё гемор с запуском Cairo на винде и макоси.

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

Но вообще можно взять Yew, засунуть его в web-view

И эти люди ругают Qt…

Уже джва года жду flutter-rs

Не знаю на счёт rs, но сам flutter не готов чуть менее чем полностью. Если мы про десктоп говорим конечно.

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

И эти люди ругают Qt…

Я не ругаю Qt. ОП хочет хелоуворлды писать на Rust, пусть чего-нибудь новое изучит.

flutter не готов чуть менее чем полностью

Поэтому джва года жду

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

Но я ничего не рисую. Рисует браузер. А все готовые решения что я видел рассчитаны на маленькие модели.

Для сравнения, у меня текущая реализация HexView + TreeView (кастомная модель + кастомный делегат) + клей между Qt и Rust занимает всего 1000 строк на плюсах. Слабо себе представляю как это можно реализовать проще через веб.

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

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

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

А ты в qt тоже все сразу отрисовываешь?

Навскидку, я бы взял вот это: https://svelte.dev/repl/f78ddd84a1a540a9a40512df39ef751b?version=3.22.3 и вот это: https://svelte.dev/tutorial/svelte-self, склеил бы их вместе в 100 строк и пошел бы воздухом подышать с чувством глубокого удовлетворения) Попробую накидать на выходных.

Кстати, замечу еще, что исходники virtual list влезают в 200 строк: https://github.com/sveltejs/svelte-virtual-list/blob/master/VirtualList.svelte, то есть все равно вместе выйдет явно поменьше 1к строк на крестах, плюс еще и непонятно, что у тебя с отрисовкой, сам писал, что ли?

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

А все готовые решения что я видел рассчитаны на маленькие модели.

кстати, даже в тормозном реакте уже этим запарились:

https://mobile.twitter.com/dan_abramov/status/1120986057363939328

vs

https://mobile.twitter.com/dan_abramov/status/1120986640216985602

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

Он всё равно даёт меньше размер бинарников на оффтопиках, да и в онтопике.

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

В смысле, а как еще? Под любым количеством слоев абстракции сейчас у тебя будет модель в виде структур данных в js + отрисовка этого движком (или руками) в DOM.

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

А ты в qt тоже все сразу отрисовываешь?

Нет конечно. И рисует Qt, а не я.

Навскидку, я бы взял вот это

Повторяю: я ищу готовое решение. Скопипастил html. Подсунул json с данными - всё.

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

Не использовать DOM какахи, где можно использовать Qt/wx по вкусу.
Таким дай волю, в LaTeX будут виджеты верстать.

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

Это вообще норма для веба или просто elm говнище? Такой же существенной разницы между размером символа + и - я не заметил.

Это просто составитель туториала не умеет в вёрстку. Тут как бы elm ни причём. Elm, TypeScript, ReasonML, PureScript, etc. - всё языки, призванные решить проблемы JS.

silver-bullet-bfg ★★
()
13 июля 2020 г.
Ответ на: комментарий от vertexua

Вот еще что нашел

https://tauri.studio/docs/about/intro

По сути уже написаная связка Rust+Webkit для десктопа. Фреймворк не навязывает какой фреймворк использовать для генерации HTML/CSS/JS

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