Rust
Applications GUI
Recherche…
Introduction
Rust n'a pas de cadre propre pour le développement de l'interface graphique. Pourtant, il existe de nombreuses liaisons avec les cadres existants. La liaison de bibliothèque la plus avancée est rust-gtk . Une liste complète des liaisons peut être trouvée ici
Simple Gtk + Fenêtre avec texte
Ajoutez la dépendance de Gtk à votre Cargo.toml
:
[dependencies]
gtk = { git = "https://github.com/gtk-rs/gtk.git" }
Créez une fenêtre simple avec les éléments suivants:
extern crate gtk;
use gtk::prelude::*; // Import all the basic things
use gtk::{Window, WindowType, Label};
fn main() {
if gtk::init().is_err() { //Initialize Gtk before doing anything with it
panic!("Can't init GTK");
}
let window = Window::new(WindowType::Toplevel);
//Destroy window on exit
window.connect_delete_event(|_,_| {gtk::main_quit(); Inhibit(false) });
window.set_title("Stackoverflow. example");
window.set_default_size(350, 70);
let label = Label::new(Some("Some text"));
window.add(&label);
window.show_all();
gtk::main();
}
Fenêtre Gtk + avec entrée et étiquette dans GtkBox, connexion de signal GtkEntry
extern crate gtk;
use gtk::prelude::*;
use gtk::{Window, WindowType, Label, Entry, Box as GtkBox, Orientation};
fn main() {
if gtk::init().is_err() {
println!("Failed to initialize GTK.");
return;
}
let window = Window::new(WindowType::Toplevel);
window.connect_delete_event(|_,_| {gtk::main_quit(); Inhibit(false) });
window.set_title("Stackoverflow. example");
window.set_default_size(350, 70);
let label = Label::new(Some("Some text"));
// Create a VBox with 10px spacing
let bx = GtkBox::new(Orientation::Vertical, 10);
let entry = Entry::new();
// Connect "activate" signal to anonymous function
// that takes GtkEntry as an argument and prints it's text
entry.connect_activate(|x| println!("{}",x.get_text().unwrap()));
// Add our label and entry to the box
// Do not expand or fill, zero padding
bx.pack_start(&label, false, false, 0);
bx.pack_start(&entry, false, false, 0);
window.add(&bx);
window.show_all();
gtk::main();
}
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow