Графични (desktop) интерфейси

07 януари 2025

GTK

GTK

Вижте презентацията от https://2022.fmi.rust-lang.bg/lectures

GTK

GTK

Iced

Демо код: https://github.com/nikolads/rust-demo-iced

Iced

Къде се използва?

Egui

Демо код: https://github.com/nikolads/rust-demo-egui

Egui

Retained vs immediate mode

retianed mode

Retained vs immediate mode

retianed mode

Retained vs immediate mode

immediate mode

Retained vs immediate mode

immediate mode

1 2 3
if ui.button("label").clicked() {
    /* handle click */
}

ui.button() оказва, че трябва да се нарисува бутон.
Функцията не връща widget, ами egui::Response. Ако същия бутон е бил нарисуван предишния кадър, Response ще съдържа информация какво се е случило с него:

Retained vs immediate mode

immediate mode

1 2 3 4 5 6
ui.horizontal(|ui| {
    ui.label("Add new task");
    if ui.button("+").clicked() {
        /* hanle click */
    }
});

Retained vs immediate mode

immediate mode

Въпроси