GTK and Rust


The gtk-rs project contains Rust bindings for GTK, Cairo and other GLib-compatible libraries.

The bindings of Cairo, Pango, Gio, Graphene and GLib are part of gtk-rs core. The bindings of GTK 4 can be found at gtk4-rs.

gtk-rs Documentation

gtk4-rs provides extensive documentation for its API based on GObject-Introspection. An introduction to building GUI applications with Rust and GTK 4 is also available in the form of a book.

The gtk4-rs Github repository features additional examples which demonstrate solutions to specific problems.

A Hello World app

This code shows how to use gtk4-rs to create a simple Hello World application.

use glib::clone;
// glib and other dependencies are re-exported by the gtk crate
use gtk::glib;
use gtk::prelude::*;

// When the application is launched…
fn on_activate(application: &gtk::Application) {
    // … create a new window …
    let window = gtk::ApplicationWindow::new(application);
    // … with a button in it …
    let button = gtk::Button::with_label("Hello World!");
    // … which closes the window when clicked
    button.connect_clicked(clone!(@weak window => move |_| window.close()));

fn main() {
    // Create a new application with the builder pattern
    let app = gtk::Application::builder()
    // Run the application;

See More

Observed a typo or some missing information, edit this page.
Read on how to contribute to this website.