Categories
GUI
  • Github CLI
  • SSH
  • HTTPS
Clone Repo

zgtk3

zgtk3 is a library currently in development that aims to implement GTK3 for the Zig programming language. This project will enable developers to create graphical user interfaces (GUIs) using Zig.

Features

  • Build applications from templates as zig structures using buildInterface()
  • Run command-line commands more simply using executeCommand()

Installation

See in releases of project.

Usage

Once completed, zgtk3 will allow for creating windows and other GUI elements in Zig. Here is a simple example of what the usage might look like:

const gtk = @import("zgtk3");

const buildInterface = gtk.buildInterface;

const c = gtk.c;

pub fn main() !u8 {
    c.gtk_init(0, null);

    _ = buildInterface(@import("ui.zig").template);

    c.gtk_main();

    return 0;
}

ui.zig

const c = @import("gtk").c;

pub const template = .{
    .class = "window",
    .args = .{c.GTK_WINDOW_TOPLEVEL},
    .@"window:title" = "Hello World!",
    .@"window:default_size" = .{ 400, 600 },

    .@"widget:visible" = 1,

    .children = .{.{
        .class = "button",
        .@"widget:visible" = 1,
        .@"button:label" = "Test",
    }},
};

Documentation

Comprehensive documentation will be available once the project is further along in development.

Example

Just run

zig build example

Contributing

Contributions are welcome! Please fork the repository and submit a pull request. For major changes, please open an issue first to discuss what you would like to change.

Acknowledgements

I am grateful to Jesus Christ for giving me the strength and inspiration to work on this project.

About
Implementation gtk3 for Zig programming language
Owner
Last Commit
2024-10-03
Latest Release
Latest Release Date
2024-08-06
Created
2024-08-04