LINUX.ORG.RU

Rust - UI

 ,


1

5

Всем привет! Есть ли что-то адекватное окромя gtk-rs для того чтобы кинуть на форму дерево (TreeView), табы (TabControl), кнопки и текст. И чтобы это выглядело нормально в Lin\Win?

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

Ну блин GTK менять на GTK в другой коробке не сильно то хочется. Может кто пробовал libui?

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

libui работает нормально, но там пока нет TreeView как я понял, так что тебе наверное не подойдет.

Слышал хорошие отзывы про qml-rust

pftBest ★★★★ ()

Ну так тут в любом случае Qt или gtk+.

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

Меня смущает то, что автор забросил его. Хотя начинание очень хорошее.

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

Ну тогда остается что-нибудь про «rust electron»

Мужчина, кхм... Либу то тащить с собой не хочется, а браузер так тем более

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

Жаль, что libui не готов =( Спасибо за qml-rust, буду ковырять

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

Либу то тащить с собой не хочется, а браузер так тем более

Можно пойти путем syncthing и вместо браузера тащить http-сервер. А за браузер ты зря гонишь. Он в данный момент времени единственное по-настящему кроссплатформенное GUI

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

Это ужасное решение. Жрётся память, жрётся проц, особенно катастрофа начинается на нетбуках с 1-2гб оперативы на атоме. Уже не говоря о избыточности браузера\сервера для десятка простых элементов управления. Не надо так делать...

Единственный удачный полностью кроссплатформенный GUI - это Qt, но он для C++

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

Жрется только из-за js. Заменяем JS на биндинги к DOM из раста — получаем отличный легкиий кроссплатформенный гуй.
Отрисовка HTML/CSS сама по себе почти ничего не стоит

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

См любой рендерер HTML/CSS (тысячи их) и производительность современных JS движков и устройство самой виртуальной машины яваскрипта. Станет очевидно где именно бутылочное горлышко.

mersinvald ★★★★ ()

Короткий ответ: нет

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

В каком месте теория то, когда есть для C++ подобные GUI-решения (проприетарные, как водится)

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

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

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

Он в данный момент времени единственное по-настящему кроссплатформенное GUI

Смотря что под этим подразумевается. Если запуск - то да. Нативность - нет.

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

полностью кроссплатформенный GUI

Он не полностью кроссплатформенный. И уже таковым не станет, ибо забили.

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

Отрисовка HTML/CSS сама по себе почти ничего не стоит

Шта?

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

В том мысле, что написать кроссплатформенное приложение со встроенным http-сервером на порядок проще чем гуевое. А смотрелка в виде браузера уже и так встроена во все ОС (и большую часть времени уже запущена, так что лишняя вкладка ни на что не повлияет)

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

Кому проще? Мне нет.

Если софт для хомячков - да. У меня на webapps аллергия.

RazrFalcon ★★★★★ ()

Под rust нет нормального UI.
Я делал наоборот. Гуй писал на Qt с подключениями либы на rust.

Либо подождать пару-тройку лет как кто-нибудь сподобится полноценную родную gui-библиотеку напистаь.

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

Всё же получается, что самый НЕ наркоманский вариант накидать по быстрому UI для Rust - это Gtk-rs.

  • Запускаем Glade мышкой располагаем все нужные компоненты
  • Загружаем UI в билдер и делаем коннекты к евентам
  • Profit

    Ну ладно, всем спасибо за варианты.

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

Гуй писал на Qt с подключениями либы на rust.

И как? Если нужно просто вызывать мелкие функции - ок. Как только сложнее - враппер получается не меньше самого кода на rust.

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

Да не сказал бы чтобы очень сложный враппер. Если весь интерфейс можно завернуть в один класс. Плюс есть возможность автоматически генерить сишные h-файлы.

Хотя конечно с родным гуем было бы попроще и поприятнее.

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

Плюс есть возможность автоматически генерить сишные h-файлы.

Через cheddar? У меня он плохо работал.

Если весь интерфейс можно завернуть в один класс.

У вас враппер к чисто растовскому коду или к с-подобному? У меня просто реализация на чистом rust с Result, трейтами и прочими удобствами. А враппер превращает всё это в псевдо-сишные функции, которые уже экспортируются в либу.

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

Ты считаешь что Mozilla может взять и перевести весь веб на не-javascript?

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

Дык этот crate даже не альфа. Просто склад склад сорцов/WIP.

Где-то читал, что самая большая боль - это перегрузка методов. В Qt её очень сильно используют, а в rust её нет.

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

Что? Нет, я считаю, что мозилле виднее, где есть бутылочное горлышко и где его нет. Судя по тому, куда они вкладывают усилия, оно в рендеринге, а не в JS.

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

Через cheddar? У меня он плохо работал.

Я использовал rusty-cheddar с gitlab'а а не с github'а который берёт по умолчанию cargo.

У вас враппер к чисто растовскому коду или к с-подобному?

Через C-подобные функции конечно.

Раскопал заготовку ( CMake+Qt+Rust ) и положил на github, если интересно.
https://github.com/QuarkDoe/renderimage

WatchCat ★★★★★ ()

По сабжу не понимаю чем gtk не устраивает для такого простого приложения. В качестве примера простого и кроссплатформенного могу привести syncthing-gtk.

Ну и вебморда иногда тоже вариант ибо пока не открыта кушать не просит.

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

В качестве примера простого и кроссплатформенного могу привести syncthing-gtk

Предлагаешь ОПу заменить rust python-ом?

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

По сабжу не понимаю чем gtk не устраивает для такого простого приложения.

Проблемы с кросплатформенностью (т.е. оффтопиком)?

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

Ну я привел пример софта который замечательно работает под оффтопиком. И весит меньше чем весил бы аналогичный на кутях.

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

На линукс еще куда ни шло. А под винду setup.exe с питоном, батарейками и gtk будет минимум мегабайт 100. Если вообще заработает

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

Но приведенный мной пример портабелен. И весит явно не 100 мб.

А не для питона достаточно установить msys и хорошо.

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

Воу. И впрямь есть инсталлер под винду с питоном и gtk3. И всего-лишь 56 метров в распакованном виде

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

У меня чуть более сложный подход. У меня две либы на rust: одна - это сама либа, а вторая - враппер. Это упрощает тестирование и сборку кода и позволяет экспортировать в .so только то, что нужно.

К слову я ещё и cdylib использую. Она весит совсем немного.

Я всё подумываю написать генератор поверх cheddar, чтобы он мог более тесно с Qt работать и меньше ручной писанины было бы.

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

Я к тому что проблемы с gtk кросплатформенностью сильно надуманы и приувеличены. Единственное его отличие от qt что весит меньше (потому что там меньше фич вроде работы с сетью)

И

Не подхватывает тему на оффтопиках. Но виндоюзерам с их зоопарком стимов и проводников не привыкать. А про мак тс ничего не говорил.

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

И весит меньше чем весил бы аналогичный на кутях.

Пруфы будут? «Простая» прога на Qt легко помещается в 25МБ с доп. зависимостями.

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

В том-то и проблема, что GTK+ выглядит как говно на win/macos, и поэтому не нужен.

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

Ладно, тут я сливаюсь, хотя чувствую что без питона и gtk 3 встанет в столько же.

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

Он не выглядит как говно. Он выглядит красиво и элегантно (как и сам гном)

Я про третий gtk само собой.

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