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.)

