#gtk #gnome #macro-derive

已弃用 glade

已弃用。请使用gtk-rs的CompositeTemplate derive宏代替。

5个版本 (1个稳定版本)

2.2.0 2023年7月21日
0.1.0-alpha.42021年3月14日
0.1.0-alpha.32020年12月30日
0.1.0-alpha.22020年11月28日
0.1.0-alpha2020年6月13日

#198 in #gnome


用于 2 crates

MIT/Apache

16KB
90

gladis

Build Latest version Documentation License REUSE status

轻松将Glade生成的UI文件导入Rust代码。

此crate是已弃用的https://github.com/gagath/gladis的分支,用于保持向后兼容性

用法

为了使用Glade,您必须将以下依赖项添加到项目的Cargo.toml文件中

[dependencies]
glade = "2.2.0"

完成此操作后,您就可以享受Gladis derive了!

#[derive(Gladis, Clone)]
pub struct Window {
    pub window: gtk::ApplicationWindow,
    pub label: gtk::Label,
}

impl Window {
    pub fn new() -> Self {
        Self::from_resource("/dev/null/hello_builder/window.ui").unwrap()
    }
}

没有Gladis,您将不得不手动解析每个Glade条目。

pub struct Window {
    pub window: gtk::ApplicationWindow,
    pub label: gtk::Label,
}

impl Window {
    pub fn new() -> Self {
        let builder = gtk::Builder::from_resource("/dev/null/hello_builder/window.ui");
        let window: gtk::ApplicationWindow = builder
            .object("window")
            .expect("Failed to find the window object");

        let label: gtk::Label = builder
            .object("label")
            .expect("Failed to find the label object");

        Self { window, label }
    }
}

Relm支持

此crate与Relm兼容,Relm是使用GTK+编写UI的流行框架。查看examples/relm目录,并试一试!

许可证

根据您的选择,受Apache License,版本2.0MIT许可证的许可。

除非您明确表示,否则您提交的任何贡献,根据Apache-2.0许可证的定义,将按上述方式双重许可,不附加任何额外条款或条件。

依赖项

~17MB
~400K SLoC