BeS
02-04-2003, 23:04
Hallo,
ich versuche mich gerade in GTK+. Dazu habe ich das klasische "Hello-World" Programm geschrieben:
/* -*-coding: utf-8;-*- */
#include<gtk/gtk.h>
void ende(GtkWidget *widget, gpointer data);
gboolean delete_event(GtkWidget *widget, GdkEvent event, gpointer data);
void hallo(GtkWidget *widget, gpointer data);
int main(int argc, char **argv)
{
GtkWindow *fenster;
GtkButton *knopf;
gtk_init(&argc, &argv);
fenster = g_object_new(GTK_TYPE_WINDOW,
"default-height", 200,
"default-width", 200,
"border-width", 12,
"title", "GtkHallo",
NULL);
g_signal_connect(G_OBJECT(fenster),"delete-event",G_CALLBACK(delete_event),
NULL);
g_signal_connect(G_OBJECT(fenster),"destroy",G_CALLBACK(ende), NULL);
knopf = g_object_new(GTK_TYPE_BUTTON, "label","Hallo Welt!\nHier drücken!",
"use-underline", TRUE, NULL);
g_signal_connect(G_OBJECT(knopf),"clicked",G_CALLBACK(hallo), NULL);
g_signal_connect_swapped(G_OBJECT(knopf),"clicked",
G_CALLBACK(gtk_widget_destroy),G_OBJECT(fenster));
gtk_container_add(GTK_CONTAINER(fenster), GTK_WIDGET(knopf));
gtk_widget_show_all(GTK_WIDGET(fenster));
gtk_main();
return(0);
}
void ende(GtkWidget *widget, gpointer data)
{
g_print ("destroy event occurred\n");
gtk_main_quit();
}
gboolean delete_event(GtkWidget *widget, GdkEvent event, gpointer data)
{
g_print ("delete event occurred\n");
return FALSE;
}
void hallo(GtkWidget *widget, gpointer data)
{
g_print("Hallo Welt!\n");
}
das Programm compiliert soweit auch und lässt sich starten. Wenn ich im button-label aber Umlaute verwende bekomme ich beim starten diese Meldung:
(hallo:2317): Gtk-WARNING **: Invalid input string
und es wird nur ein leerer button dargestellt.
Wenn ich im title des Fenster Umlaute verwende bekomme ich diese Meldung:
(hallo:2327): Gdk-WARNING **: Error converting from UTF-8 to 'ISO-8859-1': Invalid byte sequence in conversion input
und auch der title bleibt leer.
Woran könnte das liegen?
Danke!
ich versuche mich gerade in GTK+. Dazu habe ich das klasische "Hello-World" Programm geschrieben:
/* -*-coding: utf-8;-*- */
#include<gtk/gtk.h>
void ende(GtkWidget *widget, gpointer data);
gboolean delete_event(GtkWidget *widget, GdkEvent event, gpointer data);
void hallo(GtkWidget *widget, gpointer data);
int main(int argc, char **argv)
{
GtkWindow *fenster;
GtkButton *knopf;
gtk_init(&argc, &argv);
fenster = g_object_new(GTK_TYPE_WINDOW,
"default-height", 200,
"default-width", 200,
"border-width", 12,
"title", "GtkHallo",
NULL);
g_signal_connect(G_OBJECT(fenster),"delete-event",G_CALLBACK(delete_event),
NULL);
g_signal_connect(G_OBJECT(fenster),"destroy",G_CALLBACK(ende), NULL);
knopf = g_object_new(GTK_TYPE_BUTTON, "label","Hallo Welt!\nHier drücken!",
"use-underline", TRUE, NULL);
g_signal_connect(G_OBJECT(knopf),"clicked",G_CALLBACK(hallo), NULL);
g_signal_connect_swapped(G_OBJECT(knopf),"clicked",
G_CALLBACK(gtk_widget_destroy),G_OBJECT(fenster));
gtk_container_add(GTK_CONTAINER(fenster), GTK_WIDGET(knopf));
gtk_widget_show_all(GTK_WIDGET(fenster));
gtk_main();
return(0);
}
void ende(GtkWidget *widget, gpointer data)
{
g_print ("destroy event occurred\n");
gtk_main_quit();
}
gboolean delete_event(GtkWidget *widget, GdkEvent event, gpointer data)
{
g_print ("delete event occurred\n");
return FALSE;
}
void hallo(GtkWidget *widget, gpointer data)
{
g_print("Hallo Welt!\n");
}
das Programm compiliert soweit auch und lässt sich starten. Wenn ich im button-label aber Umlaute verwende bekomme ich beim starten diese Meldung:
(hallo:2317): Gtk-WARNING **: Invalid input string
und es wird nur ein leerer button dargestellt.
Wenn ich im title des Fenster Umlaute verwende bekomme ich diese Meldung:
(hallo:2327): Gdk-WARNING **: Error converting from UTF-8 to 'ISO-8859-1': Invalid byte sequence in conversion input
und auch der title bleibt leer.
Woran könnte das liegen?
Danke!