#slint #import #ui #set #component #surrealism-ui

jui

jui 是基于 slint 的 UI 库

24 个版本

0.2.0 2024年7月19日
0.1.26 2024年6月6日
0.1.25 2024年5月17日
0.1.22 2024年4月22日
0.1.4 2024年1月30日

#172GUI

Download history 16/week @ 2024-04-26 252/week @ 2024-05-10 185/week @ 2024-05-17 4/week @ 2024-05-24 113/week @ 2024-05-31 45/week @ 2024-06-07 8/week @ 2024-06-14 5/week @ 2024-07-05 121/week @ 2024-07-19 50/week @ 2024-07-26 18/week @ 2024-08-02

每月下载量 189

MIT/ApacheGPL-3.0-only…

18KB
204

jui 是基于 slint 的 UI 库
SurrealismUI 已支持
更多功能即将推出

支持组件

名称 导入示例
按钮 导入{按钮}from"@jui/button/button.slint";
ButtonBase 导入{ButtonBase}from"@jui/button/button_base.slint";
ButtonOpt 导入{ButtonBase}from"@jui/button/button_opt.slint";
ButtonOptBase 导入{ButtonOptBase}from"@jui/button/button_opt_base.slint";
ButtonOptList 导入{ButtonOptList}from"@jui/button/button_opt_list.slint";
InputBase 导入{InputBase}from"@jui/input/input_base.slint";
输入 导入{输入}from"@jui/input/input.slint";
下划线输入 导入{下划线输入}from"@jui/input/underline_input.slint";
复选框 导入{复选框}from"@jui/checkbox.slint";
空格进入 导入{空格进入}from"@jui/event/space_enter.slint";
触摸空格进入 导入{触摸空格进入}from"@jui/event/touch_space_enter.slint";
折叠 导入{折叠}from"@jui/collapse/collapse.slint";
确认 导入{确认}from"@jui/message/confirm.slint";
标签 导入{标签}from"@jui/message/tag.slint";
遮罩 导入{遮罩}from"@jui/message/mask.slint";
抽屉公共部分 导入{抽屉公共部分}from"@jui/drawer/drawer_common.slint";
抽屉 导入{抽屉}from"@jui/drawer/drawer.slint";
抽屉顶部 导入{抽屉顶部}from"@jui/drawer/drawer_top.slint";
抽屉左侧 导入{抽屉左侧}from"@jui/drawer/drawer_left.slint";
抽屉右侧 导入{抽屉右侧}from"@jui/drawer/drawer_right.slint";
抽屉底部 导入{抽屉底部}from"@jui/drawer/drawer_bottom.slint";
标签页 导入{标签页}from"@jui/nav/tabs.slint";
组合框 导入{组合框}from"@jui/combobox/combobox.slint";

支持的数据

名称 导入示例
位置 导入{位置}from"@jui/data/position.slint";
按钮选项数据 导入{按钮选项数据}from"@jui/button/button_opt_list.slint";
标签页数据 导入{标签页数据}from"@jui/nav/tabs.slint";
确认数据 导入{确认数据}from"@jui/message/confirm.slint";
确认标题数据 导入{确认标题数据}from"@jui/message/confirm.slint";
确认按钮数据 导入{确认按钮数据}from"@jui/message/confirm.slint";
组合框数据 导入{组合框数据}from"@jui/combobox/combobox.slint";

支持的图标

名称 导入示例
图标关闭 导入{图标关闭}from"@jui/icons/icon_close.slint";

SurrealismUI 示例

功能启用 surrealism_ui,Cargo.toml 文件示例

[dependencies]
slint = "1.7.0"

[build-dependencies]
jui = { version = "0.2.0", features = ["surrealism_ui"] }

在 slint 文件中使用 SurrealismUI

// support all component
// import { SButton } from "@surrealism_all";

// support single component
import { SButton } from "@surrealism/button/index.slint";

export component App inherits Window {
    SButton {}
}

更多 SurrealismUI 查看: SurrealismUI wiki
如果你想使用别名导入 SurrealismUI,例如 build.rs 文件

use jui::surrealism_ui::SurrealismUI;

pub fn main() {
    let separator = jui::cbsk_file::separator;
    let surrealism_ui = SurrealismUI::new_with_alias("sui");
    jui::compile_with_surrealism_ui(format!("view{separator}main.slint"), surrealism_ui).unwrap();
}

Jui 按钮示例

Cargo.toml 文件

[dependencies]
slint = "1.7.0"

[build-dependencies]
jui = "0.2.0"

main.rs 文件

slint::include_modules!();

fn main() {
    App::new().unwrap().run().unwrap();
}

build.rs 文件

pub fn main() {
    let separator = jui::cbsk_file::separator;
    jui::compile(format!("view{separator}main.slint")).unwrap();
}

view/main.slint 文件

import { Button } from "@jui/button.slint";

export component App inherits Window {
    min-width: 300px;
    min-height: 300px;
    
    Rectangle {
        Button {
            color: red;
        }
    }
}

更多示例

即将推出

依赖项

~20–31MB
~504K SLoC