Câu hỏi Làm cách nào để xây dựng ứng dụng GUI bằng ngôn ngữ C bằng GTK +?


Tôi đã viết mã bằng ngôn ngữ C sử dụng GTK. Mã này cung cấp một cửa sổ với 2 nút, nhưng tôi không biết cách tạo ứng dụng GUI độc lập từ mã này.

Vui lòng giải thích cho tôi từng bước và chi tiết.

#include<gtk/gtk.h>
void static call(GtkWidget *widget,gpointer data)
{
    g_print("%s \n",(gchar*) data);
}

int main(int agrc, char *agrv[])
{
    gtk_init(&agrc,&agrv);
    GtkWidget *window,*button,*vbox;
    window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
    g_signal_connect(window,"delete-event",G_CALLBACK(gtk_main_quit),NULL);
    gtk_window_set_title(GTK_WINDOW(window),"two button");

    vbox=gtk_vbox_new(0,0);
    button=gtk_button_new_with_label("button 1");
    g_signal_connect(button,"clicked",G_CALLBACK(call),(gpointer) "BUTTON 1");
    gtk_box_pack_start(GTK_BOX(vbox),button,0,0,0);
    button=gtk_button_new_with_label("button 2");
    g_signal_connect(button,"clicked",G_CALLBACK(call),(gpointer) "BUTTON 2");
    gtk_box_pack_start(GTK_BOX(vbox),button,0,0,0);
    button=gtk_button_new_with_label("Close");
    g_signal_connect(button,"clicked",G_CALLBACK(call),(gpointer) "BUTTON 2");
    gtk_box_pack_start(GTK_BOX(vbox),button,0,0,0);
    gtk_container_set_border_width(GTK_CONTAINER(window),10);
    gtk_container_add(GTK_CONTAINER(window),vbox); 
    gtk_widget_show_all(window);
    gtk_main();
    return (0);
}

1
2017-12-25 19:52


gốc




Các câu trả lời:


Nếu bạn đã cài đặt libgtk2.0-dev gói theo cách thông thường từ kho lưu trữ, sau đó bạn có thể xây dựng ứng dụng của mình gcc, sử dụng pkg-config để đặt chỉ thị bao gồm và thư viện thích hợp, ví dụ:

gcc -o myapp myapp.c `pkg-config --cflags --libs gtk+-2.0`

Để biết thêm thông tin, hãy xem Hướng dẫn GTK + 2.0 tại Trung tâm phát triển Gnome


2
2017-12-25 20:44



lệnh này hoạt động tốt và tạo tệp .exe cho mã c đơn giản mà không cần bất kỳ #include<gtk/gtk.h trong mã c i586-mingw32msvc-gcc code.c -o code nhưng khi tôi cố gắng biên dịch mã c với #include<gtk/gtk.h bằng cách sử dụng lệnh sau nó mang lại cho tôi mã lỗi i586-mingw32msvc-gcc code.c -o code pkg-config --cflags --libs gtk+-2.0 - osama