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