4 / 4 / 0
Регистрация: 02.05.2021
Сообщений: 3
|
|
1 | |
GUI. Порекомендуйте02.05.2021, 09:51. Показов 4855. Ответов 11
1
|
02.05.2021, 09:51 | |
Ответы с готовыми решениями:
11
Порекомендуйте Lisp для создания Windows-приложений с GUI Порекомендуйте пожалуйста книги по GUI программированию на Matlab Как запустить qt gui программу, как демон, без gui, скрыв gui? Как нарисовать в gui из подгружаемой функции или передать точки в gui |
Модератор
|
|
02.05.2021, 12:48 | 2 |
Тут бы нормальный GUI в виде обёртки над C/C++ найти, или хотя бы простой и не тормозной html-based.
А вы хотите GUI с нуля написанный на rust. Когда то пробовал https://github.com/pistondevelopers/conrod Ещё можете посмотреть https://github.com/emilk/egui Но рекомендовать нечего. Везде сырое, без нормальной документации. Я бы сам был рад если бы кто-нибудь предложил бы что то доделанное.
3
|
4 / 4 / 0
Регистрация: 02.05.2021
Сообщений: 3
|
|
03.05.2021, 05:44 [ТС] | 3 |
Curry, я это явно был слишком оптимистичен.
относительно нормальные на rust есть только над gtk. p.s. обзор https://dev.to/davidedelpapa/r... -2021-40gl
1
|
║XLR8║
|
|
04.05.2021, 16:52 | 4 |
Curry, cehod, я бы сказал, смотря какие у вас задачи.
В своё время перебрал всё из are we gui yet и ещё парочку нашёл. Всё что видел однозначно сырое, но если чётко определить цели, можно выделить пару тройку подходящих вариантов. Так как я искал GUI, который позволил бы сделать полноценную игру, при этом не отжирая всё процессорное время, я осталовился на fltk. Да, это С++ библиотека и на Rust есть только обвязка вокруг неё, но моим целям соответствовала вполне. Изначально я остановился на druid, так как ещё раньше разбирался с ним, но, помимо малой библиотеки widget-ов, он всё ещё на стадии concept proof, что-ли. Например, прохода дерева widget-ов для определения места которое изменилось так либо нет, либо сделано коряво на столько, что можно утверждать что его нет. Когда у вас несколько сотен widget-ов на форме, придётся ждать отрисовки всего одна, даже если изменилась надпись на одной кнопке. Преславутый data driven, хотя и кажется хорошим, но далеко не лишен недостатков. С точки зрения польвателя библиотеки, могут возникнуть проблемы глобальным состоянием приложения. Линзы это конечно хорошо, но когда стают вопросы общего доступа и обмена сообщениями, пользователи ощутят определённую боль. Всё то, что занимается отрисовкой html меня не интересовало, по определению, из-за требований к производительсти. Мол чтобы GUI работал как GUI, переиодически просыпаясь для перерисовки частей окна или обработки сообщений от ОСи а не запускал бесконечный цыкл в надежде что ему дадут 1000 FPS выдать. Fltk в этом плане ближе всех к native (аля WinApi), решениям по загрузке CPU.
2
|
4 / 4 / 0
Регистрация: 02.05.2021
Сообщений: 3
|
|
05.05.2021, 19:26 [ТС] | 5 |
я бы выделил из кроссплатформенных(и запускались без особых проблем):
iui - "win32API on Windows, Cocoa on Mac OS X, and GTK+ on Linux" tauri - альтернатива электрону. Windows/Mac OS/Linux. fltk-rs - Windows/Mac OS/Linux/Android. outoftime, fltk-rs выглядит наиболее зрелой.(при том что там только 1 разработчик)
2
|
║XLR8║
|
|
13.05.2021, 06:43 | 6 |
cehod, опять таки, это не совсем однозначно. Многие используют wgpu для отрисовки, а он поддерживает только Vulkan (всё что кроме у меня не работало, везде есть косяки). Да, некоторые решения лучше, некоторые хуже, но я, пока что, останусь при своём мнении.
Очень хочу чтобы меня разубедили.
1
|
Заблокирован
|
|
18.05.2021, 15:56 | 7 |
> без qt, gtk и c++
Такого не существует, очевидно. Я не знаю, что ты хочешь от поехавших, которые даже компилятор для своего языка родить не смогла, выкатив вместо этого убогийй огрызок фронта к llvm. Никогда там не будет "без c++". Биндинги к сишному коду - единственный путь для недоязычка.
0
|
Просто Лис
|
|
23.05.2021, 14:55 | 8 |
Код
# apt install libncurses5-dev libncursesw5-dev cursive = "0.16.3" Или возьми веб-интерфейс: https://rocket.rs/ - кое-чего не хватает, но жить можно.
0
|
Пора на C++?
370 / 264 / 99
Регистрация: 10.04.2020
Сообщений: 1,275
|
|
31.05.2021, 22:11 | 9 |
cehod, под Windows есть такая удобная обёртка на WinAPI: native-windows-gui. Не отличается разнообразием графических компонентов, но для базовых нужд хватит.
0
|
1687 / 559 / 74
Регистрация: 10.04.2009
Сообщений: 9,158
|
|
15.09.2022, 17:19 | 10 |
подскажите, а все примеры гуя в онлайн редакторе: https://www.onlinegdb.com/ будут работать?
я пробовал: Код
// Copyright © SixtyFPS GmbH <info@slint-ui.com> // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-commercial #[cfg(target_arch = "wasm32")] use wasm_bindgen::prelude::*; use slint::Model; use std::rc::Rc; slint::include_modules!(); /// Returns the current time formated as a string fn current_time() -> slint::SharedString { #[cfg(not(target_arch = "wasm32"))] return chrono::Local::now().format("%H:%M:%S %d/%m/%Y").to_string().into(); #[cfg(target_arch = "wasm32")] return "".into(); } struct PrinterQueueData { data: Rc<slint::VecModel<PrinterQueueItem>>, print_progress_timer: slint::Timer, } impl PrinterQueueData { fn push_job(&self, title: slint::SharedString) { self.data.push(PrinterQueueItem { status: "WAITING...".into(), progress: 0, title, owner: env!("CARGO_PKG_AUTHORS").into(), pages: 1, size: "100kB".into(), submission_date: current_time(), }) } } #[cfg_attr(target_arch = "wasm32", wasm_bindgen(start))] pub fn main() { // This provides better error messages in debug mode. // It's disabled in release mode so it doesn't bloat up the file size. #[cfg(all(debug_assertions, target_arch = "wasm32"))] console_error_panic_hook::set_once(); let main_window = MainWindow::new(); main_window.set_ink_levels(slint::VecModel::from_slice(&[ InkLevel { color: slint::Color::from_rgb_u8(0, 255, 255), level: 0.40 }, InkLevel { color: slint::Color::from_rgb_u8(255, 0, 255), level: 0.20 }, InkLevel { color: slint::Color::from_rgb_u8(255, 255, 0), level: 0.50 }, InkLevel { color: slint::Color::from_rgb_u8(0, 0, 0), level: 0.80 }, ])); let default_queue: Vec<PrinterQueueItem> = main_window.global::<PrinterQueue>().get_printer_queue().iter().collect(); let printer_queue = Rc::new(PrinterQueueData { data: Rc::new(slint::VecModel::from(default_queue)), print_progress_timer: Default::default(), }); main_window.global::<PrinterQueue>().set_printer_queue(printer_queue.data.clone().into()); main_window.on_quit(move || { #[cfg(not(target_arch = "wasm32"))] std::process::exit(0); }); let printer_queue_copy = printer_queue.clone(); main_window.global::<PrinterQueue>().on_start_job(move |title| { printer_queue_copy.push_job(title); }); let printer_queue_copy = printer_queue.clone(); main_window.global::<PrinterQueue>().on_cancel_job(move |idx| { printer_queue_copy.data.remove(idx as usize); }); let printer_queue_weak = Rc::downgrade(&printer_queue); printer_queue.print_progress_timer.start( slint::TimerMode::Repeated, std::time::Duration::from_secs(1), move || { if let Some(printer_queue) = printer_queue_weak.upgrade() { if printer_queue.data.row_count() > 0 { let mut top_item = printer_queue.data.row_data(0).unwrap(); top_item.progress += 1; top_item.status = "PRINTING".into(); if top_item.progress > 100 { printer_queue.data.remove(0); if printer_queue.data.row_count() == 0 { return; } top_item = printer_queue.data.row_data(0).unwrap(); } printer_queue.data.set_row_data(0, top_item); } else { // FIXME: stop this timer? } } }, ); main_window.run(); }
0
|
36 / 3 / 1
Регистрация: 30.06.2016
Сообщений: 93
|
|
01.07.2024, 17:18 | 11 |
Если красивостей не нужно, то fltk-rs годный вариант.
Но если вдруг требуются всякие извраты. Типа кнопок и оформление в стиле "как на сайте" и т.п. То Tauri. Буквально 3 недели назад тестовое приложение под линуксом запилил и скомпилировал под линукс и винду. Всё работает. Фронт на ванильном js (использовал старый-добрый ангуляр-js и бутстрап)
1
|
Нарушитель
99 / 89 / 16
Регистрация: 12.01.2022
Сообщений: 990
|
|
02.07.2024, 10:20 | 12 |
1
|
02.07.2024, 10:20 | |
02.07.2024, 10:20 | |
Помогаю со студенческими работами здесь
12
[ubuntu] Как запустить qt-gui программу без gui-интерфейся из консоли? Как запустить GUI приложение (например, notepad.exe) без отображения GUI? LWJGL+ GUI - Выход из рендерного цикла для работы в GUI без потери окна LWJGL и GUI - Выход из рендерного цикла для роботы в GUI без потери окна Как лучше и быстрее из SQL в QVector и в GUI или сразу из SQL в GUI Порекомендуйте Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
|
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|