Rust Widgets Documentation
Welcome to the rust_widgets documentation! This documentation is available in multiple languages:
About rust_widgets
rust_widgets is a pure Rust cross-platform native GUI architecture that provides a unified API for building graphical user interfaces across different platforms.
Key Features
- Cross-platform: Supports Windows, macOS, Linux, and HarmonyOS
- Native performance: Uses native platform APIs for optimal performance
- Unified API: Consistent API across all platforms
- Internationalization: Built-in support for multiple languages
- Extensible: Easy to extend with custom widgets and platforms
Getting Started
To get started with rust_widgets, please refer to the documentation in your preferred language.
Platform Support
- Desktop: Windows (Win32), macOS (Cocoa), Linux (GTK), Harmony Desktop
- Embedded: Embedded Linux / embedded Harmony
- Mobile: Android / iOS / Harmony mobile (architecture-ready)
License
rust_widgets is licensed under the MIT License. See LICENSE for more information.
Rust Widgets Documentation
Welcome to the rust_widgets documentation! This is a comprehensive guide to building cross-platform GUI applications using the rust_widgets framework.
What is rust_widgets?
rust_widgets is a powerful, cross-platform GUI framework for Rust that enables you to build native desktop and mobile applications. It provides:
- Cross-Platform: Write once, run on Windows, macOS, Linux, HarmonyOS, and embedded systems
- Native Performance: Direct platform integration without virtualization overhead
- Rich Widget Set: Comprehensive collection of basic and advanced UI components
- Multi-Language Support: Built-in internationalization (i18n) with runtime language switching
- Multiple Language Bindings: Use from Rust, C, Python, Java, and more
- GPU Acceleration: Optional GPU rendering backend for high-performance graphics
Quick Links
- Getting Started - Start building your first application
- Widget Reference - Browse available UI components
- API Documentation - Explore the API reference
- Demos - See example applications
Example
Here’s a simple “Hello World” application:
use rust_widgets::{create_window, create_label, show_widget, run, init};
fn main() {
init();
let window = create_window("Hello World", 100, 100, 400, 300);
let label = create_label(window, "Hello, rust_widgets!", 20, 20, 200, 30);
show_widget(window);
run();
}
Features
Widget Types
- Basic Widgets: Button, Label, LineEdit, TextEdit, Checkbox, RadioButton, ComboBox, Slider, ProgressBar, SpinBox
- Container Widgets: Panel, Splitter, TabWidget, DockPanel, ScrollArea, GroupBox
- Advanced Widgets: TreeView, TableView, ListView, MdiArea, Chart, Canvas
- Dialog Widgets: MessageBox, FileDialog, InputDialog, Custom Dialogs
Platform Support
| Platform | Status | Notes |
|---|---|---|
| Windows | ✅ Supported | Win32 API with DPI awareness |
| macOS | ✅ Supported | Cocoa/AppKit integration |
| Linux | ✅ Supported | GTK3/GTK4 backends |
| HarmonyOS | ✅ Supported | Native ArkUI integration |
| Embedded | ✅ Supported | Custom render engine |
Language Bindings
- Rust: Native API (primary)
- C: Full ABI compatibility
- Python: Pythonic wrapper with type hints
- Java: JNI-based integration
- C++: Header-only wrapper
Architecture
rust_widgets follows a layered architecture:
┌─────────────────────────────────────┐
│ Application Layer │
│ (Your GUI Application) │
├─────────────────────────────────────┤
│ Widget Layer │
│ (Buttons, Labels, etc.) │
├─────────────────────────────────────┤
│ Platform Abstraction │
│ (Cross-platform interface) │
├─────────────────────────────────────┤
│ Native Backends │
│ (Win32/Cocoa/GTK/ArkUI) │
└─────────────────────────────────────┘
Getting Help
- Issues: Report bugs on GitHub Issues
- Discussions: Join community discussions
- Documentation: Browse this comprehensive guide
License
rust_widgets is licensed under the MIT License. See LICENSE for details.
Ready to start? Head to the Quick Start Guide!
Rust Widgets 文档
欢迎使用 rust_widgets 文档!这是使用 rust_widgets 框架构建跨平台 GUI 应用程序的综合指南。
什么是 rust_widgets?
rust_widgets 是一个强大的 Rust 跨平台 GUI 框架,使您能够构建原生桌面和移动应用程序。它提供了:
- 跨平台:一次编写,在 Windows、macOS、Linux、鸿蒙系统和嵌入式系统上运行
- 原生性能:直接平台集成,无虚拟化开销
- 丰富的控件集:全面的基础和高级 UI 组件集合
- 多语言支持:内置国际化(i18n)支持运行时语言切换
- 多种语言绑定:支持从 Rust、C、Python、Java 等语言使用
- GPU 加速:可选的 GPU 渲染后端,实现高性能图形
快速链接
示例
这是一个简单的 “Hello World” 应用程序:
use rust_widgets::{create_window, create_label, show_widget, run, init};
fn main() {
init();
let window = create_window("Hello World", 100, 100, 400, 300);
let label = create_label(window, "Hello, rust_widgets!", 20, 20, 200, 30);
show_widget(window);
run();
}
功能特性
控件类型
- 基础控件:按钮、标签、行编辑、文本编辑、复选框、单选按钮、组合框、滑块、进度条、数字框
- 容器控件:面板、分割器、标签页、停靠面板、滚动区域、分组框
- 高级控件:树形视图、表格视图、列表视图、多文档界面、图表、画布
- 对话框控件:消息框、文件对话框、输入对话框、自定义对话框
平台支持
| 平台 | 状态 | 说明 |
|---|---|---|
| Windows | ✅ 支持 | Win32 API,支持 DPI 感知 |
| macOS | ✅ 支持 | Cocoa/AppKit 集成 |
| Linux | ✅ 支持 | GTK3/GTK4 后端 |
| 鸿蒙系统 | ✅ 支持 | 原生 ArkUI 集成 |
| 嵌入式 | ✅ 支持 | 自定义渲染引擎 |
语言绑定
- Rust:原生 API(主要)
- C:完整的 ABI 兼容性
- Python:具有类型提示的 Pythonic 包装器
- Java:基于 JNI 的集成
- C++:仅头文件的包装器
架构
rust_widgets 遵循分层架构:
┌─────────────────────────────────────┐
│ 应用层 │
│ (您的 GUI 应用程序) │
├─────────────────────────────────────┤
│ 控件层 │
│ (按钮、标签等) │
├─────────────────────────────────────┤
│ 平台抽象层 │
│ (跨平台接口) │
├─────────────────────────────────────┤
│ 原生后端 │
│ (Win32/Cocoa/GTK/ArkUI) │
└─────────────────────────────────────┘
获取帮助
- 问题:在 GitHub Issues 上报告错误
- 讨论:加入社区讨论
- 文档:浏览本综合指南
许可证
rust_widgets 使用 MIT 许可证。详情请参见 LICENSE。
准备开始? 前往 快速开始指南!
Rust Widgets 文件
歡迎使用 rust_widgets 文件!這是使用 rust_widgets 框架構建跨平台 GUI 應用程式的綜合指南。
什麼是 rust_widgets?
rust_widgets 是一個強大的 Rust 跨平台 GUI 框架,使您能夠構建原生桌面和行動應用程式。它提供了:
- 跨平台:一次編寫,在 Windows、macOS、Linux、鴻蒙系統和嵌入式系統上執行
- 原生效能:直接平台整合,無虛擬化開銷
- 豐富的控制項集:全面的基礎和進階 UI 元件集合
- 多語言支援:內建國際化(i18n)支援執行時語言切換
- 多種語言繫結:支援從 Rust、C、Python、Java 等語言使用
- GPU 加速:可選的 GPU 彩現後端,實現高效能圖形
快速連結
範例
這是一個簡單的 “Hello World” 應用程式:
use rust_widgets::{create_window, create_label, show_widget, run, init};
fn main() {
init();
let window = create_window("Hello World", 100, 100, 400, 300);
let label = create_label(window, "Hello, rust_widgets!", 20, 20, 200, 30);
show_widget(window);
run();
}
功能特性
控制項類型
- 基礎控制項:按鈕、標籤、行編輯、文字編輯、核取方塊、選項按鈕、下拉式方塊、滑桿、進度列、數字方塊
- 容器控制項:面板、分割器、索引標籤、停駐面板、捲動區域、群組方塊
- 進階控制項:樹狀檢視、表格檢視、清單檢視、多文件介面、圖表、畫布
- 對話方塊控制項:訊息方塊、檔案對話方塊、輸入對話方塊、自訂對話方塊
平台支援
| 平台 | 狀態 | 說明 |
|---|---|---|
| Windows | ✅ 支援 | Win32 API,支援 DPI 感知 |
| macOS | ✅ 支援 | Cocoa/AppKit 整合 |
| Linux | ✅ 支援 | GTK3/GTK4 後端 |
| 鴻蒙系統 | ✅ 支援 | 原生 ArkUI 整合 |
| 嵌入式 | ✅ 支援 | 自訂彩現引擎 |
語言繫結
- Rust:原生 API(主要)
- C:完整的 ABI 相容性
- Python:具有型別提示的 Pythonic 包裝器
- Java:基於 JNI 的整合
- C++:僅標頭檔的包裝器
架構
rust_widgets 遵循分層架構:
┌─────────────────────────────────────┐
│ 應用層 │
│ (您的 GUI 應用程式) │
├─────────────────────────────────────┤
│ 控制項層 │
│ (按鈕、標籤等) │
├─────────────────────────────────────┤
│ 平台抽象層 │
│ (跨平台介面) │
├─────────────────────────────────────┤
│ 原生後端 │
│ (Win32/Cocoa/GTK/ArkUI) │
└─────────────────────────────────────┘
取得說明
- 問題:在 GitHub Issues 上報告錯誤
- 討論:加入社群討論
- 文件:瀏覽本綜合指南
授權
rust_widgets 使用 MIT 授權。詳情請參見 LICENSE。
準備開始? 前往 快速開始指南!
Documentation Rust Widgets
Bienvenue dans la documentation rust_widgets ! Il s’agit d’un guide complet pour créer des applications GUI multiplateformes avec le framework rust_widgets.
Qu’est-ce que rust_widgets ?
rust_widgets est un puissant framework GUI multiplateforme pour Rust qui vous permet de créer des applications natives pour ordinateurs de bureau et mobiles. Il offre :
- Multiplateforme : Écrivez une fois, exécutez sur Windows, macOS, Linux, HarmonyOS et systèmes embarqués
- Performance native : Intégration directe à la plateforme sans surcharge de virtualisation
- Ensemble riche de widgets : Collection complète de composants UI basiques et avancés
- Support multilingue : Internationalisation (i18n) intégrée avec changement de langue à l’exécution
- Liaisons multi-langages : Utilisable depuis Rust, C, Python, Java et plus encore
- Accélération GPU : Backend de rendu GPU optionnel pour des graphismes haute performance
Liens rapides
- Démarrage rapide - Commencez à créer votre première application
- Référence des widgets - Parcourez les composants UI disponibles
- Documentation API - Explorez la référence API
- Démos - Voyez des exemples d’applications
Exemple
Voici une simple application “Hello World” :
use rust_widgets::{create_window, create_label, show_widget, run, init};
fn main() {
init();
let window = create_window("Hello World", 100, 100, 400, 300);
let label = create_label(window, "Hello, rust_widgets!", 20, 20, 200, 30);
show_widget(window);
run();
}
Fonctionnalités
Types de widgets
- Widgets de base : Bouton, Étiquette, Édition de ligne, Édition de texte, Case à cocher, Bouton radio, Boîte combo, Curseur, Barre de progression, Boîte de rotation
- Widgets conteneurs : Panneau, Séparateur, Widget à onglets, Panneau d’ancrage, Zone de défilement, Boîte de groupe
- Widgets avancés : Vue arborescente, Vue tabulaire, Vue liste, Zone MDI, Graphique, Canevas
- Widgets de dialogue : Boîte de message, Dialogue de fichier, Dialogue de saisie, Dialogues personnalisés
Support des plateformes
| Plateforme | Statut | Notes |
|---|---|---|
| Windows | ✅ Supporté | API Win32 avec prise en charge DPI |
| macOS | ✅ Supporté | Intégration Cocoa/AppKit |
| Linux | ✅ Supporté | Backends GTK3/GTK4 |
| HarmonyOS | ✅ Supporté | Intégration native ArkUI |
| Embarqué | ✅ Supporté | Moteur de rendu personnalisé |
Liaisons de langage
- Rust : API native (principale)
- C : Compatibilité ABI complète
- Python : Wrapper Pythonic avec annotations de type
- Java : Intégration basée sur JNI
- C++ : Wrapper header-only
Architecture
rust_widgets suit une architecture en couches :
┌─────────────────────────────────────┐
│ Couche Application │
│ (Votre application GUI) │
├─────────────────────────────────────┤
│ Couche Widget │
│ (Boutons, Étiquettes, etc.) │
├─────────────────────────────────────┤
│ Abstraction de plateforme │
│ (Interface multiplateforme) │
├─────────────────────────────────────┤
│ Backends natifs │
│ (Win32/Cocoa/GTK/ArkUI) │
└─────────────────────────────────────┘
Obtenir de l’aide
- Problèmes : Signalez des bugs sur GitHub Issues
- Discussions : Rejoignez les discussions communautaires
- Documentation : Parcourez ce guide complet
Licence
rust_widgets est sous licence MIT. Voir LICENSE pour plus de détails.
Prêt à commencer ? Rendez-vous au Guide de démarrage rapide !