Об этом проекте
egui (произносится "и-гуи") — это простая, быстрая и высокопортативная библиотека графического интерфейса в режиме немедленного рендеринга для Rust. Она работает в вебе, нативно и может быть интегрирована в игровые движки. Библиотека спроектирована как самая простая в использовании GUI-библиотека для Rust, с акцентом на простоту, отзывчивость и портативность.
Ключевые особенности включают:
- **Виджеты**: Метки, кнопки, ползунки, редактирование текста, выбор цвета и многое другое.
- **Макеты**: Горизонтальные, вертикальные, колонки и автоматический перенос.
- **Редактирование текста**: Многострочное, копирование/вставка, отмена и поддержка эмодзи.
- **Окна**: Перемещение, изменение размера, сворачивание и закрытие с автоматическим размером и позиционированием.
- **Области**: Изменение размера, прокрутка, сворачиваемые заголовки и панели.
- **Рендеринг**: Сглаженные линии, круги, текст и выпуклые многоугольники.
- **Доступность**: Опциональная поддержка AccessKit для программ чтения с экрана.
- **Настройка**: Цвета, отступы, шрифты и размеры через `Context::set_style`.
Она использует парадигму немедленного режима, где интерфейс перестраивается каждый кадр, упрощая код за счет устранения обратных вызовов и проблем синхронизации состояния. Этот подход делает его простым в использовании, но может быть менее мощным для сложных макетов.
Официальные интеграции включают `eframe` для веба и нативных приложений, `egui_glow` для рендеринга OpenGL, `egui-wgpu` для WebGPU и `egui-winit` для оконных систем. Сторонние интеграции доступны для игровых движков, таких как Bevy.
Для разработчиков egui идеально подходит для создания простых GUI в Rust или добавления GUI в игровой движок. Это не фреймворк, а библиотека, которую вы вызываете, и она не предназначена для нативного внешнего вида или сложных интерфейсов с сохранением состояния.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.