ein Kapitel zurück                                           ein Kapitel weiter

Labels sind simple Widgets, welche einen Bereich darstellen, der mit Text gefüllt wird. Wir wollen gar nicht lange herumreden. Erzeugen können sie einen Label mit:

GtkWidget *gtk_label_new(cons gchar *string);  

Für den Parameter können sie den Text für das Label eingeben. Nun folgen weiter Funktionen für das Label, die vorwiegend zur Darstellung diese Widgets dienen.

Wollen sie das neu erzeugte Label (zum Teil) Unterstreichen, können sie die Funktion:

void gtk_label_set_pattern(GtkLabel *label, const gchar *pattern);  

machen. Mit....

gtk_label_set_pattern(GTK_LABEL(label), "_____");  

...unterstreichen sie zum Beispiel die ersten 5 Zeichen von label.

Um die Position des Labels auszurichten, gibt es die Funktion:

void gtk_label_set_justify(GtkLabel *label, GtkJustification jtype);  

Folgende Selbstaussagende Aufzählungstypen können sie für den zweiten Parameter verwenden:

GTK_JUSTIFY_LEFT, GTK_JUSTIFY_RIGHT, GTK_JUSTIFY_CENTER,GTK_JUSTIFY_FILL  

GTK_JUSTIFY_CENTER ist der Default-Wert mit dem unser Label erzeugt wird.

Wollen sie ein Label nachträglich Verändern (überschreiben) können sie dies mit folgender Funktion machen:

void gtk_label_set_text(GtkLabel *label, const gchar *new_text);  

Im zweiten Parameter geben sie Ihren Neuen Text ein welcher im Label des ersten Parameter überschrieben werden soll.

Und sollten sie den Inhalt vom Label benötigen dann ist diese Funktion dafür gedacht:

void gtk_label_get(GtkLabel *label, const gchar **string);  

Wollen wir uns doch mal ein Programmbeispiel für das Label-Widget und einigen Funktion ansehen:

/*Download:gtklab.c*/

#include <gtk/gtk.h>


void ende_cb(GtkObject *object)
{
 gtk_main_quit();
}


int main(int argc, char **argv)
{
 GtkWidget *fenster;
 GtkWidget *box, *box2;
 GtkWidget *label1, *label2, *label3;
 GtkWidget *button_quit;
 gchar *string;

 /*Gtk initialisieren*/
 gtk_init(&argc, &argv);
 /*Ein neues Fenster erstellen*/
 fenster = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 /*Buttons erstellen*/

 button_quit  = gtk_button_new_with_label("Ende");
 /*Neue Box erstellen*/
 box = gtk_vbox_new(TRUE,10);

 label1 = gtk_label_new("Hallo Welt, dies ist Label1\nund er ist total Sinnlos\n"
 "aber Hallo wird unterstrichen");
 /*Wir Unterstreichen das Wort Hallo in Label1*/
 gtk_label_set_pattern(GTK_LABEL(label1),"______");
 label2 = gtk_label_new("Die ist Label 2\nund der ist Linksausgerichtet");
 gtk_label_set_justify(GTK_LABEL(label2),GTK_JUSTIFY_LEFT);
 label3 = gtk_label_new("Wird ja noch\nbesser\nZeile beginnt\nam Anfang\nbeim newline");
 gtk_label_set_line_wrap(GTK_LABEL(label3), TRUE);
 /*Inhalt von Label 1 auslesen*/
 gtk_label_get(GTK_LABEL(label1), &string);
 g_print("%s\n",string);

 /*Signale registrieren*/
 gtk_signal_connect_object(GTK_OBJECT(button_quit), "clicked",
                           GTK_SIGNAL_FUNC(ende_cb), GTK_OBJECT(fenster));
 gtk_signal_connect(GTK_OBJECT(fenster), "destroy",
                    GTK_SIGNAL_FUNC(ende_cb), NULL);


 /*Fensterposition*/
 gtk_window_set_position(GTK_WINDOW(fenster),GTK_WIN_POS_CENTER);

 gtk_container_set_border_width(GTK_CONTAINER(fenster),25);

 /*Nun alles rein in die Box....*/
 gtk_box_pack_start(GTK_BOX(box), label1, FALSE, FALSE, 0);
 gtk_box_pack_start(GTK_BOX(box), label2, FALSE, FALSE, 0);
 gtk_box_pack_start(GTK_BOX(box), label3, FALSE, FALSE, 0);
 gtk_box_pack_start(GTK_BOX(box), button_quit, FALSE, FALSE, 20);


 gtk_container_add(GTK_CONTAINER(fenster),box);

 /*Zeigs uns.....*/
 gtk_widget_show_all(fenster);

 gtk_main();

 return 0;
}

Und so könnte es aussehen:




ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf