+Fuss+ hat geschrieben:Mit dem Vokabel-Spiel in GTK+ geht's voran.
Jetzt wollte ich eigentlich nur aus einem GTK+ Entry den Text in einen char kopieren:
die char's ist als globale Var angelegt:
dann die entsprechende Codezeile:
Code: Alles auswählen
//Mannschaftsnamen auslesen
mann_links = gtk_entry_get_text(GTK_ENTRY(entry_links));
mann_rechts = gtk_entry_get_text(GTK_ENTRY(entry_rechts));
die char's werden dann als Labels für einen Button genommen.
Aber auf dem einen Button steht eine Verzeichnis-Angabe und auf dem anderen unleserliche Zeichen.
Woran kann das liegen?
MfG Fuss
Wer Lesen kann ist klar im Vorteil:
http://library.gnome.org/devel/gtk/unst ... y-get-text
Da steht klipp und klar:
GNOME Documentation Library hat geschrieben:Returns :
a pointer to the contents of the widget as a string. This string points to internally allocated storage in the widget and must not be freed, modified or stored.
Das bedeutet, dass der Text irgendwo intern gespeichert wird. Wenn du danach gtk funktionen aufrufst (oder wenn sie von woanders aufgerufen werden), kann GTK entscheiden dass der speicher nicht mehr benötigt wird und räumt ihn Frei.
Was dabei rauskommt ist, dass du einen undefinierten String erhälst.
Du musst einfach nur den String den du erhälst gleich wieder in einem anderen abspeichern, etwa so:
google zweiter treffer hat geschrieben:Code: Alles auswählen
gchar *id;
id = g_strdup (gtk_entry_get_text (GTK_ENTRY (widget)));
/* mach hier was mit id */
/* und dann id wieder freigeben */
g_free (id);
Das alles hab ich übrigens mit 2 minuten googeln herausgefunden, ohne eine Ahnung von GTK zu haben. Bitte in Zukunft zuerst die Dokumentation der Funktion beachten, dann erst Fragen stellen!
Haters gonna hate, potatoes gonna potate.