首页 > 其他分享 >Rust Druid桌面应用框架

Rust Druid桌面应用框架

时间:2023-10-09 17:36:09浏览次数:36  
标签:桌面 Druid druid 跨平台 UI let data Rust

目录

Github

管方文档

简介

Druid 是一个用于构建现代、高性能、跨平台桌面应用的 Rust 库。以下是一些 Druid 框架的主要特点和介绍:

声明式 UI

Druid 提供了一种声明式的用户界面框架,这意味着你可以通过定义应用的状态和 UI 的关系,而不是手动操作 DOM 或 UI 控件来构建应用。这种风格类似于 React。

数据绑定

Druid 支持数据绑定,使得 UI 元素可以直接绑定到应用程序的状态。当应用程序状态发生变化时,UI 会自动更新以反映这些变化。

高性能

Druid 使用了现代的图形技术,包括 GPU 加速和 WebRender 渲染引擎,以提供高性能的用户界面渲染。

可扩展性

Druid 具有可扩展的架构,允许你轻松地创建自定义的 UI 控件、布局和主题。这使得可以根据应用程序的需求进行定制。

跨平台

Druid 是一个跨平台框架,支持 Windows、macOS 和 Linux 等主流操作系统。这使得你可以使用相同的代码库构建跨平台的桌面应用。

事件处理

Druid 提供了强大的事件处理系统,支持鼠标、键盘等输入设备的事件处理。这使得你可以轻松地处理用户输入并响应应用程序中的交互。

生命周期管理

Druid 管理应用程序的生命周期,包括启动、关闭和重新加载。这使得你可以专注于应用逻辑而不必担心底层的生命周期管理。

社区支持

Druid 是一个活跃的开源项目,拥有一个热情的社区。它的文档详细且不断更新,社区成员提供了大量的示例和支持。

设置国内镜像

cd ~/.cargo
# 创建config文件
vim config
# 添加如下镜像源
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'ustc'
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"

添加依赖

[dependencies]
druid = "0.8.3"

官方示例

use druid::widget::{Button, Flex, Label};
use druid::{AppLauncher, LocalizedString, PlatformError, Widget, WidgetExt, WindowDesc};

fn main() -> Result<(), PlatformError> {
    let main_window = WindowDesc::new(ui_builder());
    let data = 0_u32;
    AppLauncher::with_window(main_window)
        .log_to_console()
        .launch(data)
}

fn ui_builder() -> impl Widget<u32> {
    // The label text will be computed dynamically based on the current locale and count
    let text =
        LocalizedString::new("hello-counter").with_arg("count", |data: &u32, _env| (*data).into());
    let label = Label::new(text).padding(5.0).center();
    let button = Button::new("increment")
        .on_click(|_ctx, data, _env| *data += 1)
        .padding(5.0);

    Flex::column().with_child(label).with_child(button)
}

下载依赖并编译运行

cargo run

image

标签:桌面,Druid,druid,跨平台,UI,let,data,Rust
From: https://www.cnblogs.com/wufengsheng/p/17752262.html

相关文章

  • Rust actix-web框架
    目录Github官方文档设置国内镜像添加依赖官方示例下载依赖并编译运行Githubhttps://github.com/actix/actix-web官方文档https://actix.rs/docs/getting-started设置国内镜像cd~/.cargo#创建config文件vimconfig#添加如下镜像源[source.crates-io]registry="......
  • 转:Java安全漏洞:Druid未授权访问解决
    Java安全漏洞:Druid未授权访问解决 1.设置账号密码2.禁用durid ......
  • 【常用操作】CentOS系统配置远程桌面
    一、前言当前系统使用最小化安装方式,因使用需求变更,需要使用图形化界面操作,此处介绍如何安装图形化界面,并配置远程桌面二、安装部署1、安装图形化界面安装Gnome包yumgroupinstall"GNOMEDesktop""GraphicalAdministrationTools"-y更新系统运行级别ln-sf/lib/sy......
  • Windows桌面应用程序源文件.cpp注释
     这个是visualstudio2022上利用Windows桌面应用程序模板创建的源文件注释一个Windows图形界面(GUI)应用程序通常由主窗体,对话框,控件组成。当应用程序创建一个窗体,需要调用CreateWindowEx函数,必须提供的参数1.窗体类窗体类是一个结构体。是一系列属性的集合,用来描述窗体的行为......
  • dremio 24.2 新增druid arp 扩展
    dremio24.2新增druidarp扩展,此扩展在jdbcce版本的plugin中,我们可以通过反编译学习参考图  参考资料https://druid.apache.org/......
  • 使用SSL证书加密微软远程桌面(本地部署证书)
    之前用微软的远程桌面,但未加密,总感觉差点意思,然后找到了一个大佬的技术教程,亲测可以用,这里做一下备份引用。原作者:李YD原文章:https://blog.csdn.net/a549569635/article/details/48831105/ ......
  • 在Jupyter中运行Rust(需要安装Minicconda、JupyterLab和Rust)
    安装Miniconda有许多不同的方法可以在一个方便我们工作的环境中启动和运行。我可以推荐的一种方法是安装和使用Miniconda。Miniconda是一个免费的最小安装程序。它是Anaconda的一个小的引导版本,仅包含conda、Python、它们所依赖的包,以及少量其他有用的包,包括pip、zlib和其......
  • dwm.exe是Windows操作系统中的一个进程,它是Desktop Window Manager的缩写,负责管理和渲
    dwm.exe是Windows操作系统中的一个进程,它是DesktopWindowManager的缩写,负责管理和渲染桌面以及窗口的显示效果。DesktopWindowManager(DWM)是WindowsVista及其之后版本引入的一个特性,它通过使用硬件加速来实现窗口的合成和渲染,提供了透明、窗口阴影、动画效果等视觉特效。它还......
  • vs code调试rust乱码问题解决方案
    在terminal中用chcp65001修改一下字符集,就行了。有的博主推荐修改区域中的设置,这会引来很大的问题。千万不要修改如下设置:......
  • 6. 用Rust手把手编写一个wmproxy(代理,内网穿透等), 通讯协议源码解读篇
    用Rust手把手编写一个wmproxy(代理,内网穿透等),通讯协议源码解读篇项目++wmproxy++gite:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy事件模型的选取OS线程,简单的一个IO对应一个系统级别的线程,通常单进程创建的线程数是有限的,在线程与......