一、GTK介绍
GTK (GIMP Toolkit) 是一个多平台的图形用户界面工具包。它最初是为图像处理程序 GIMP 开发的,后来演变成为许多操作系统上开发图形界面应用程序的通用库。GTK 是用C语言编写的,并且是自由和开源软件,遵循LGPL (GNU Lesser General Public License) 许可证。
桌面环境(如 GNOME、XFCE、LXDE)使用GTK作为其基本的图形界面库来构建其用户界面。这些桌面环境提供了完整的桌面系统体验,包括窗口管理、系统菜单、面板、工具栏和其他基础设施,GTK则是使得这些组件拥有统一和美观风格的基石。
二、Ubuntu 22上用GTK写GUI程序
要使用GTK开发图形用户界面(GUI)程序,首先需要安装GTK库。
1. 确保GTK库已安装。
在Ubuntu系统上,可以使用以下命令安装GTK的开发文件:
sudo apt install libgtk-4-dev
sudo apt install libgtk-3-dev
2. 创建一个C文件(例如:`hello.c`)
添加以下代码,这个示例程序将创建一个带有按钮的窗口,单击按钮会在终端中打印"Hello World"。
#include <gtk/gtk.h>static void print_hello(GtkWidget *widget, gpointer data) {g_print("Hello World\n");
}static void activate(GtkApplication *app, gpointer user_data) {GtkWidget *window;GtkWidget *button;// 创建一个窗口window = gtk_application_window_new(app);gtk_window_set_title(GTK_WINDOW(window), "Window");gtk_window_set_default_size(GTK_WINDOW(window), 200, 200);// 创建一个按钮,绑定点击事件button = gtk_button_new_with_label("Hello World");g_signal_connect(button, "clicked", G_CALLBACK(print_hello), NULL);gtk_window_set_child(GTK_WINDOW(window), button);// 显示窗口和按钮gtk_widget_show(window);
}int main(int argc, char **argv) {GtkApplication *app;int status;// 创建一个GtkApplication实例app = gtk_application_new("org.gtk.example", G_APPLICATION_FLAGS_NONE);g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);status = g_application_run(G_APPLICATION(app), argc, argv);g_object_unref(app);return status;
}
3. 编译这个程序。
可以使用`gcc`编译器进行编译,并且链接GTK库:
gcc `pkg-config --cflags gtk4` -o hello hello.c `pkg-config --libs gtk4`
命令中的 pkg-config
用于自动查找GTK库的编译和链接标志。这里的`gtk4`表示我们使用的是GTK 4,如果需要使用GTK 3,则将`gtk4`替换为`gtk+-3.0`。
4. 运行编译后的程序:
./hello
这个程序是使用GTK的C API编写的。
GTK也有许多语言绑定供不同语言使用,例如Python,C++,Rust等,所以也可以用这些语言和相应的GTK绑定来开发GUI程序。
对于其他语言的示例和详细说明,可以查阅GTK的官方文档或找到相应的语言绑定教程。
5. GTK官网
The GTK Project - A free and open-source cross-platform widget toolkit