Home Blog CV Projects Patterns Notes Book Colophon Search

GTK 4 C++

3 Jan, 2025

A hello world GTK 4 example compiled as C++:

#include <gtk/gtk.h>

static void on_activate(GtkApplication *app, gpointer user_data) {
    // Create a window
    GtkWidget *window = gtk_application_window_new(app);
    gtk_window_set_title(GTK_WINDOW(window), "Simple GTK 4 C++ App");
    gtk_window_set_default_size(GTK_WINDOW(window), 800, 600);

    // Create an image widget
    GtkWidget *image = gtk_image_new_from_file("image.png"); // Make sure "image.jpg" is in the same folder

    // Add the image to the window
    gtk_window_set_child(GTK_WINDOW(window), image);

    // Show the window
    gtk_window_present(GTK_WINDOW(window));  // Replaces gtk_widget_show(window)
}

int main(int argc, char **argv) {
    // Create GTK Application with the updated flag
    GtkApplication *app = gtk_application_new("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS);
    g_signal_connect(app, "activate", G_CALLBACK(on_activate), NULL);

    int status = g_application_run(G_APPLICATION(app), argc, argv);
    g_object_unref(app);

    return status;
}

Build with:

mkdir cppgtk
cd cppgtk/
vim main.cpp 
g++ -o gtk4_app main.cpp $(pkg-config --cflags --libs gtk4)
./gtk4_app

Comments

Be the first to comment.

Add Comment





Copyright James Gardner 1996-2020 All Rights Reserved. Admin.