Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

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

PlatformStatusNotes
Windows✅ SupportedWin32 API with DPI awareness
macOS✅ SupportedCocoa/AppKit integration
Linux✅ SupportedGTK3/GTK4 backends
HarmonyOS✅ SupportedNative ArkUI integration
Embedded✅ SupportedCustom 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

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

PlateformeStatutNotes
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 !