hello_world.c を作成する。main 内で hello_world.glade を読み出して各 widget を紐付ける
Example: hello_world.c
#include <gtk/gtk.h>
GtkBuilder *builder;
GtkWidget *label1;
GtkWidget *entry1;
G_MODULE_EXPORT void button1_clicked_cb(GtkWidget *widget, gpointer data)
{
const gchar *text;
char buf[256];
g_print("%s is called\n", __FUNCTION__);
text = gtk_entry_get_text(GTK_ENTRY(entry1));
sprintf(buf, "%s", text);
gtk_label_set_text(GTK_LABEL(label1), buf);
}
int main(int argc, char **argv)
{
GtkWidget *window;
GError *error = NULL;
GtkSettings *settings;
gtk_init(&argc, &argv);
/* Create a new GtkBuilder object */
builder = gtk_builder_new();
if (!gtk_builder_add_from_file(builder, "hello_world.glade", &error)) {
g_warning("%s", error->message);
g_free(error);
return 1;
}
settings = gtk_settings_get_default();
// gtk_settings_set_string_property (settings, "gtk-font-name", "MS Mincho 14", "");
gtk_settings_set_string_property (settings, "gtk-font-name", "Sazanami Gothic 14", "");
window = GTK_WIDGET(gtk_builder_get_object(builder, "Hello World"));
label1 = GTK_WIDGET(gtk_builder_get_object(builder, "label1"));
entry1 = GTK_WIDGET(gtk_builder_get_object(builder, "entry1"));
gtk_builder_connect_signals(builder, NULL);
g_object_unref(G_OBJECT(builder));
gtk_widget_show(window);
gtk_main();
return 0;
}
0 件のコメント:
コメントを投稿