Skip to content

Разработка GTK4/Adwaita на языке Rust

Установка зависимостей:

shell
su -
apt-get install libadwaita-devel libgtk4-devel libgdk-pixbuf-devel libpango-devel libcairo-gobject-devel libgio-devel libcairo-devel

Пример приложения Adwaita

Создаём проект Rust и открываем его:

shell
cd ~/projects
cargo new hello_adwaita --bin

cd hello_adwaita
cargo add libadwaita --rename adw --features gtk_v4_10
vscodium .

Вставляем следующий код в файл main.rs:

rust
use adw::prelude::*;
use adw::{
    Application,
    ApplicationWindow,
    HeaderBar
};
use adw::gtk::{
    Label, Box, Orientation
};

const APP_ID: &str = "hello_adwaita";

fn main() {
    let app = Application::builder()
    .application_id(APP_ID)
    .build();

    app.connect_activate(build_ui);
    app.run();
}

fn build_ui(app: &Application) {

    // Строим лейбл
    let label = Label::builder()
    .label("Hello Adwaita")
    .margin_top(10)
    .margin_bottom(10)
    .margin_start(10)
    .margin_end(10)
    .build();

    // Строим контент
    let content = Box::new(Orientation::Vertical, 0);
    content.append(&HeaderBar::new()); // для показа меню
    content.append(&label);

    // Строим окно
    let window = ApplicationWindow::builder()
    .application(app)
    .title("Hello Adwaita")
    .default_width(300)
    .default_height(200)
    .content(&content)
    .build();

    window.present();
}

Собираем и запускаем приложение:

shell
cargo run
app

Материалы

Авторы

История изменений