1
에서 정보 대화 상자를 표시하는 중 오류 gtk_drawing_area를 클릭 할 때 정보 대화 상자 창을 표시하려고합니다. 여기 GTK3 +
내가 사용하고있는 코드입니다 : 내가 컴파일하고 명령 GCC dialog.c를 사용하여이 코드를 실행하면#include <cairo.h>
#include <gtk/gtk.h>
void show_dialog_window(GtkWidget *widget, gpointer window) {
GtkWidget *dialog;
dialog = gtk_message_dialog_new(GTK_WINDOW(window),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_INFO,
GTK_BUTTONS_OK,
"Hello dialog!");
gtk_window_set_title(GTK_WINDOW(dialog), "Information");
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
}
int main(int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *darea;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(window), 400, 300);
gtk_window_set_title(GTK_WINDOW(window), "Click me to show an Info_Dialog");
darea = gtk_drawing_area_new();
gtk_container_add(GTK_CONTAINER(window), darea);
gtk_widget_add_events(window, GDK_BUTTON_PRESS_MASK);
g_signal_connect(window, "destroy",
G_CALLBACK(gtk_main_quit), NULL);
g_signal_connect(window, "button-press-event",
G_CALLBACK(show_dialog_window), (gpointer) window);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
pkg-config --cflags gtk+-3.0 --libs --libs cairo
-lm -o 대화 & & ./dialog 나는 다음과 같은 수 터미널에 :
분할 오류
에 관한 어떤 제안 내가 무엇을 잘못하고 있어요 (코어 덤프)?
gdb와 valgrind를 사용하여 코드를 디버깅하십시오. 오류의 원인이되는 행을 찾아 거기에서 시작하십시오. –
매개 변수를 추가하면 'gcc'에'-Wall'과'-Wextra'가 있습니다. – purplepsycho