Archiv verlassen und diese Seite im Standarddesign anzeigen : [GTK] mehrere Daten mit g_signal_connect übergeben
Hallo zusammen,
ich habe folgende Funktion:
g_signal_connect ((gpointer) button1, "clicked",
G_CALLBACK (on_button1_clicked),
(gpointer) entry1);mein Problem ist, daß ich nicht weiss wie ich mehrere Daten übergeben kann.
Also z.b. entry1,entry2 usw.
Sobald ich noch ein Argument hinzufüge, bekomme ich die eine Meldung dass nur vier Argumente übergeben werden dürfen.
Kann man das irgendwie zusammenfassen in eine Struktur vielleicht ?
danke !
butterkeks
18.03.2007, 01:11
du könntest z.B. einen Pointer auf ein nullterminiertes Array, ein benutzerdefiniertes struct oder einen C++ Vector übergeben
Hallo,
ich glaube, ich suche an der falschen Stelle.
Ich habe drei Dateien :
main.c
callbacks.c
interface.c
ich kanns drehen und wenden wie ich will, in der Callbackfunction habe ich immer
nur Zugriff auf das erste Element ? Auch wenn ich nur einen Zeiger auf z.b. eine
Struktur oder Array übergebe. Ich versuche in der Callbackfunction mit
gtk_entry_get_text(entry)einen String einzulesen. Das funktioniert auch soweit, allerdings immer nur mit dem
ersten. Wie spreche ich denn das nächste Textfeld an? Hab schon alles
Probiert von *(entry+1) bis ...
Hiermal der Code in stark verkürzter Form:
interface.c
.
.
.
GtkWidget *entry[4];
.
.
entry[0] = gtk_entry_new ();
.
.
g_signal_connect ((gpointer) button1, "clicked",
G_CALLBACK (on_button1_clicked),
(gpointer) entry[0]);
callbacks.c
.
.
void
on_button1_clicked (GtkButton *button,
GtkEntry *entry)
{
g_print("%s",gtk_entry_get_text(GTK_ENTRY(entry)));
}
.
.Bin schön langsam am verzweifeln. Wenn noch jemand einen Rat hat
wäre ich ihm dankbar dafür.
mfg
butterkeks
20.03.2007, 21:40
Ich würde in dem Fall zu einem Container aus der GLib greifen... g_ptr_array wäre hier wohl perfekt:
http://developer.gnome.org/doc/API/2.0/glib/glib-Pointer-Arrays.html
wenn die Anzahl deiner Entries nicht fest und willst du diese sowieso nur der Reihe nach abarbeiten, bietet sich die g_slist eher an:
http://developer.gnome.org/doc/API/2.0/glib/glib-Singly-Linked-Lists.html
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.