第一、安装GTK+3
https://www.gtk.org
第二、创建C/C++项目
第三、编辑CMakeLists.txt文件
cmake_minimum_required(VERSION 3.8)
project(wibus)
find_package (PkgConfig REQUIRED)
pkg_check_modules (GTK3 REQUIRED gtk+-3.0)
set(CMAKE_C_STANDARD 11)
include_directories (${GTK3_INCLUDE_DIRS})
link_directories (${GTK3_LIBRARY_DIRS})
set(SOURCE_FILES main.c)
add_executable(wibus ${SOURCE_FILES})
add_definitions (${GTK3_CFLAGS_OTHER})
target_link_libraries (wibus ${GTK3_LIBRARIES})
主要为红色内容部分
第四、测试(下面给出demo代码)
#include #include 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;
GtkWidget *button_box;
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_box = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
gtk_container_add(GTK_CONTAINER (window), button_box);
button = gtk_button_new_with_label("Hello World");
g_signal_connect (button, "clicked", G_CALLBACK(print_hello), NULL);
g_signal_connect_swapped (button, "clicked", G_CALLBACK(gtk_widget_destroy), window);
gtk_container_add(GTK_CONTAINER (button_box), button);
gtk_widget_show_all(window);
}
int
main(int argc,
char **argv) {
GtkApplication *app;
int status;
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;
}
第五、测试结果