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.

[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