cmake管理GTK+3的项目

来源:互联网 发布:ecshop 2.0数据字典 编辑:程序博客网 时间:2024/06/05 15:24

第一、安装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 <stdio.h>#include <gtk/gtk.h>static voidprint_hello(GtkWidget *widget,            gpointer data) {    g_print("Hello World\n");}static voidactivate(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);}intmain(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;}

第五、测试结果





原创粉丝点击