24 个版本

0.7.0 2024 年 7 月 10 日
0.6.1 2023 年 9 月 22 日
0.6.0 2024 年 2 月 4 日
0.5.3 2023 年 9 月 22 日
0.1.0-alpha-22021 年 7 月 12 日

#30GUI

Download history 8993/week @ 2024-05-05 7015/week @ 2024-05-12 6562/week @ 2024-05-19 7471/week @ 2024-05-26 7709/week @ 2024-06-02 8479/week @ 2024-06-09 10028/week @ 2024-06-16 7730/week @ 2024-06-23 6845/week @ 2024-06-30 7819/week @ 2024-07-07 8101/week @ 2024-07-14 10871/week @ 2024-07-21 10026/week @ 2024-07-28 8886/week @ 2024-08-04 9182/week @ 2024-08-11 7659/week @ 2024-08-18

37,192 每月下载
用于 27 个工具包(21 直接)

MIT 许可证

1.5MB
44K SLoC

libadwaita-rs

libadwaita 的 Rust 绑定

网站: https://world.pages.gitlab.gnome.org/Rust/libadwaita-rs

文档


lib.rs:

Rust Adwaita 绑定

此库包含对 Adwaita 的安全 Rust 绑定,Adwaita 是一个提供现代 GNOME 应用程序构建块的库。

另请参阅

示例

在使用之前,Adwaita 需要初始化。这可以通过以下方式完成:

libadwaita 工具包通常重命名为 adw。您可以在您的 Cargo.toml 文件中全局进行此操作

[dependencies.adw]
package = "libadwaita"
version = "0.x.y"
use adw::prelude::*;

use adw::{ActionRow, Application, ApplicationWindow, HeaderBar};
use gtk::{Box, ListBox, Orientation, SelectionMode};

fn main() {
    let application = Application::builder()
        .application_id("com.example.FirstAdwaitaApp")
        .build();

    application.connect_activate(|app| {
        // ActionRows are only available in Adwaita
        let row = ActionRow::builder()
            .activatable(true)
            .title("Click me")
            .build();
        row.connect_activated(|_| {
            eprintln!("Clicked!");
        });

        let list = ListBox::builder()
            .margin_top(32)
            .margin_end(32)
            .margin_bottom(32)
            .margin_start(32)
            .selection_mode(SelectionMode::None)
            // makes the list look nicer
            .css_classes(vec![String::from("boxed-list")])
            .build();
        list.append(&row);

        // Combine the content in a box
        let content = Box::new(Orientation::Vertical, 0);
        // Adwaitas' ApplicationWindow does not include a HeaderBar
        content.append(&HeaderBar::new());
        content.append(&list);

        let window = ApplicationWindow::builder()
            .application(app)
            .title("First App")
            .default_width(350)
            // add content to window
            .content(&content)
            .build();
        window.present();
    });

    application.run();
}

依赖项

~15–23MB
~435K SLoC