GTK/ Eingabefelder

Aus Wikibooks

< GTK
Wechseln zu: Navigation, Suche

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:

Ein Eingabefeld.
Ein Eingabefeld.

[Bearbeiten] foo

  1. #include <gtk/gtk.h>
  2.  int handlerfunktion(GtkButton *button, gpointer user_data)
  3.  {
  4.      GtkWidget *dialog;
  5.      
  6.      dialog = gtk_message_dialog_new(
  7.          NULL,
  8.          GTK_DIALOG_DESTROY_WITH_PARENT,
  9.          GTK_MESSAGE_WARNING,
  10.          GTK_BUTTONS_CLOSE,
  11.          "Aua! ... jedenfalls hast du gesagt: %s",
  12.          gtk_entry_get_text(GTK_ENTRY(user_data)),
  13.          NULL);
  14.      
  15.      gtk_dialog_run(GTK_DIALOG(dialog));
  16.      
  17.      gtk_widget_destroy(dialog);
  18.  }
  19.  
  20.  int main(int argc, char *argv[])
  21.  {
  22.      GtkWidget *window, *box, *knopf, *feld;
  23.      gtk_init(&argc, &argv);
  24.      
  25.      window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  26.      gtk_window_set_title(GTK_WINDOW(window), "Huhu");
  27.      g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(gtk_main_quit), NULL);
  28.      
  29.      box = gtk_hbox_new(false, 10);
  30.      
  31.      feld = gtk_entry_new();
  32.      
  33.      knopf = gtk_button_new_with_label("OK");
  34.      g_signal_connect(G_OBJECT(knopf), "clicked", G_CALLBACK(handlerfunktion), feld);
  35.      
  36.      gtk_box_pack_start(GTK_BOX(box), feld, false, false, 0);
  37.      gtk_box_pack_start(GTK_BOX(box), knopf, false, false, 0);
  38.      gtk_container_add(GTK_CONTAINER(window), box);
  39.      
  40.      gtk_widget_show_all(window);
  41.      
  42.      gtk_main();
  43.  }

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


Persönliche Werkzeuge