GTK(GIMP Toolkit)是成熟的跨平台 GUI 工具包,廣泛用於 Linux 桌面應用(GNOME 基礎)、Windows、macOS。本文匯總安裝途徑與學習資源,助你快速上手。
gtkmm)、Python(PyGObject)、Rust、Vala 等綁定。g_signal_connect),面向對象設計(GObject 類型系統)。# GTK 4 開發包
sudo apt update && sudo apt install libgtk-4-dev
# GTK 3 開發包
sudo apt install libgtk-3-dev
# 構建工具
sudo apt install build-essential meson ninja-build pkg-config
其他發行版:
dnf install gtk4-develpacman -S gtk4zypper install gtk4-devel# 安裝 MSYS2 後,在 UCRT64 終端運行
pacman -S mingw-w64-ucrt-x86_64-gtk4
vcpkg install gtk4:x64-windowsbrew install gtk4
| 資源類型 | 鏈接/說明 |
|---|---|
| 官方文檔 | GTK 4 Reference Manual |
| 官方教程 | Getting Started with GTK 4(含 C/Python 範例) |
| 經典書籍 | 《Foundations of GTK+ Development》(Andrew Krause)、《GTK+/Gnome Application Development》 |
| 中文社區 | GTK 中文站、Linux.cn GTK 專題 |
| 代碼示例 | GTK 官方示例倉庫 |
| 構建系統 | Meson(官方推薦)、CMake、Autotools |
// hello.c
#include
static void on_activate(GtkApplication* app, gpointer user_data) {
GtkWidget *win = gtk_application_window_new(app);
gtk_window_set_title(GTK_WINDOW(win), "Hello GTK 4");
gtk_window_set_default_size(GTK_WINDOW(win), 400, 300);
GtkWidget *label = gtk_label_new("Hello, GTK 4!");
gtk_window_set_child(GTK_WINDOW(win), label);
gtk_window_present(GTK_WINDOW(win));
}
int main(int argc, char** argv) {
GtkApplication *app = gtk_application_new("org.example.hello", 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;
}
# 使用 pkg-config 獲取編譯鏈接參數
gcc hello.c -o hello $(pkg-config --cflags --libs gtk4)
./hello
libadwaita。libgtk-4.dll、libgobject-2.0-0.dll 等)及 share/ 目錄(主題、圖標),可用 windeployqt 風格工具或手動收集。gtk4-im-module-wayland,X11 下需 ibus-gtk/fcitx-gtk。掌握安裝與構建流程,閱讀官方 Getting Started 教程,即可開始 GTK 跨平台 GUI 開發之旅。