项目结构
Rust 项目把应用代码放在 Cargo 包里,开发命令放在一个小型 Bun 包里。
#生成的文件
my-app/
├── resources/
│ └── icon.png
├── src/main.rs
├── Cargo.toml
├── Cargo.lock
├── quickgui.config.ts
├── package.json
└── README.md首次成功构建后请提交 Cargo.lock。较大的应用可以拆成普通的 Rust 模块。
#应用入口
src/main.rs 通过 Application::new().run(...) 启动,并从该回调打开窗口。每个窗口拥有一个 View。配置中的 entry 是 crate 目录。
fn main() -> Result<(), quickgui::AppError> {
Application::new().run(|cx| {
cx.open_window(WindowOptions::new("My App").size(760.0, 520.0), App);
})
}#配置
import { defineConfig } from "@quickgui/cli";
export default defineConfig({
language: "rust",
name: "My App",
identifier: "com.example.my-app",
entry: ".",
fonts: ["assets/MyFont.ttf"],
});应用图标来自 resources/icon.png。额外文件可以列在 resources 中。见应用图标和打包资源。TOML 支持相同的键。CLI 会先读 quickgui.toml,再读 quickgui.config.ts。可选的 crate feature 请在 Cargo.toml 中启用,不要在应用配置里设置 extensions。
#软件包
应用依赖 quickgui crate。@quickgui/cli 是开发依赖。可选的 terminal、markdown、editor 和 updater 能力是 Cargo feature。保留项目里已有的 crate 版本,并加上 feature:
[dependencies]
quickgui = { version = "...", features = ["updater"] }#本地开发
quickgui check
quickgui test
quickgui fmt
quickgui dev
quickgui builddev 会在源码变化时重新构建。
