







|

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:

© 2001,2002 Jürgen Wolf
|