GTK/ Eingabefelder
Aus Wikibooks
< GTK
Oft möchte man auch Nutzereingaben erfassen. GTK stellt uns dazu unter anderem ein einfaches Eingabefeld zur Verfügung. Dieses wollen wir uns als erstes ansehen:
[Bearbeiten] foo
-
#include <gtk/gtk.h> -
int handlerfunktion(GtkButton *button, gpointer user_data)
-
{ -
GtkWidget *dialog; -
-
dialog = gtk_message_dialog_new( -
NULL, -
GTK_DIALOG_DESTROY_WITH_PARENT, -
GTK_MESSAGE_WARNING, -
GTK_BUTTONS_CLOSE, -
"Aua! ... jedenfalls hast du gesagt: %s", -
gtk_entry_get_text(GTK_ENTRY(user_data)), -
NULL); -
-
gtk_dialog_run(GTK_DIALOG(dialog)); -
-
gtk_widget_destroy(dialog); -
} -
-
int main(int argc, char *argv[])
-
{ -
GtkWidget *window, *box, *knopf, *feld; -
gtk_init(&argc, &argv); -
-
window = gtk_window_new(GTK_WINDOW_TOPLEVEL); -
gtk_window_set_title(GTK_WINDOW(window), "Huhu"); -
g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(gtk_main_quit), NULL); -
-
box = gtk_hbox_new(false, 10); -
-
feld = gtk_entry_new(); -
-
knopf = gtk_button_new_with_label("OK"); -
g_signal_connect(G_OBJECT(knopf), "clicked", G_CALLBACK(handlerfunktion), feld); -
-
gtk_box_pack_start(GTK_BOX(box), feld, false, false, 0); -
gtk_box_pack_start(GTK_BOX(box), knopf, false, false, 0); -
gtk_container_add(GTK_CONTAINER(window), box); -
-
gtk_widget_show_all(window); -
-
gtk_main(); -
}
Wir können also bereits feststellen: mit gtk_entry_new wird solch ein Feld erzeugt. Mit der Funktion gtk_entry_get_text kann auf den eingegebenen Text zugegriffen werden. (Mit gtk_entry_set_text kann man den aktuellen Text auch mit einem anderen überschreiben.)