GTK3 笔记 - 绘制主窗口

234 阅读1分钟

废话不多说,下面的模板代码展示了如何初始化和绘制主窗口。

#include <gtk/gtk.h>

// 程序启动时由activate 事件触发的回调函数
static void _activate(GApplication *app, gpointer user_data) {
    (void)user_data;
    GtkWidget *window = NULL;

    window = gtk_application_window_new(GTK_APPLICATION(app));

    // 进行主窗口设置
    gtk_window_set_title(GTK_WINDOW(window), "main window");
    gtk_window_set_default_size(GTK_WINDOW(window), 800, 600);
    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);

    gtk_widget_show(window);
}

int main(int argc, char **argv) {
    GtkApplication *app = NULL;
    int status = 0;

    app = gtk_application_new("main.window", G_APPLICATION_FLAGS_NONE);
    
    // 通过 "activate" 事件进行主窗口设置
    g_signal_connect(app, "activate", G_CALLBACK(_activate), NULL);
    
    // 运行程序
    status = g_application_run(G_APPLICATION(app), argc, argv);
    g_object_unref(app);

    return status;
}

编译命令:

gcc -o win-demo main.c `pkg-config --cflags --libs gtk+-3.0` -export-dynamic

效果图: