FORGE KUI / learn

用 Rust 打开原生窗口

从包内 EXE 开始,跟踪 Platform、Window 和 Document。

版本 3.61.7

第14课
准备
Windows x64、Rust SDK、Rust MSVC 工具链
学完可以做
修改并构建 Rust 桌面窗口
申请获取 SDK →Rust SDK · Windows x64

先运行,再改源码

从 Rust SDK 根目录运行预编译程序。确认原生窗口和 HTML 标题可见,再打开 examples/hello_world.rs。

powershell
.\bin\kui_rust_hello_world.exe

读完整的入口

Platform::init 建立运行环境;Window::new 创建窗口;document.load_html 把 HTML 交给 KUI;platform.run 启动事件循环。这里没有 WebView 或 JavaScript 运行时。

rust
use kui::{Platform, Window, WindowProps};

fn main() -> kui::Result<()> {
    let platform = Platform::init()?;
    let window = Window::new(&WindowProps {
        title: "KUI Rust SDK".into(),
        width: 960,
        height: 640,
        ..WindowProps::default()
    })?;
    let mut document = window.document()?;
    document.load_html(
        r#"<main style="padding:48px;font-family:sans-serif"><h1>Rust SDK 已接入 KUI</h1><p>此程序仅通过公开 C ABI 工作。</p></main>"#,
    )?;
    window.show()?;
    let _ = platform.run()?;
    Ok(())
}

只构建这一例

把 HTML 标题改成自己的文字。设置 KUI_C_SDK 让构建脚本找到 import library,并把 native/bin 加入本次终端的 PATH,然后运行单个 example。关闭终端后 PATH 自动恢复。

powershell
$env:KUI_C_SDK = (Resolve-Path .\native).Path
$env:PATH = "$env:KUI_C_SDK\bin;$env:PATH"
cargo run --release --example hello_world

验收与排错

确认新标题显示。链接失败先检查 native/lib/kui_c.lib;启动失败再检查 native/bin 和 PATH。UI 对象留在创建它的线程,FFI 回调不要让 panic 穿过 C ABI。

文档有误或遗漏?

反馈此页问题 →