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

Материалы

GTK-RS.org

Авторы

The avatar of contributor named as Кирилл Уницаев Кирилл Уницаев
The avatar of contributor named as Давид Султаниязов Давид Султаниязов
The avatar of contributor named as Жора Змейкин Жора Змейкин
The avatar of contributor named as h3try h3try
The avatar of contributor named as iQQator iQQator

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