







|

Noch der Scrollbar wollen wir uns nun das Scale Widget ansehen. Natürlich
gilt auch für das Scale Widget, das selbe mit dem Adjustment wie schon
bei den Scrollbars. Wir wollen uns zuerst wieder den Syntax für die
Erstellung eines neuen horizontalen Scale Widgets ansehen:
GtkWidget *gtk_hscale_new(GtkAdjustment *adj);
Das Argument für Adjustment haben sie schon kennen gelernt. Wollen wir uns doch
zuvor das Scale Widget in der Praxis ansehen. Hierzu unser Quellcode:
/*Download:gktsca1.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 *hscale1, *hscale2, *hscale3;
GtkWidget *button_quit;
GtkObject *adj1, *adj2, *adj3;
/*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_hbox_new(FALSE,10);
box2= gtk_vbox_new(TRUE,0);
adj1 = gtk_adjustment_new(50.0, 0.0, 100.0, 0.1, 1.0, 1.0);
adj2 = gtk_adjustment_new(0.0, 0.0, 100.0, 10.0, 1.0, 1.0);
adj3 = gtk_adjustment_new(0.0, 0.0, 100.0, 1.0, 1.0, 1.0);
hscale1 = gtk_hscale_new(GTK_ADJUSTMENT(adj1));
hscale2 = gtk_hscale_new(GTK_ADJUSTMENT(adj2));
hscale3 = gtk_hscale_new(GTK_ADJUSTMENT(adj3));
/*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), hscale1, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(box), hscale2, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(box), hscale3, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(box2), box, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(box2), button_quit, FALSE, FALSE, 20);
gtk_container_add(GTK_CONTAINER(fenster),box2);
/*Zeigs uns.....*/
gtk_widget_show_all(fenster);
gtk_main();
return 0;
}
|
Und so könnte es aussehen:
Wollen sie die Zahlen nicht anzeigen, so gibt es dafür die Funktion:
void gtk_scale_set_draw_value(GtkScale *scale, gboolen draw_value);
Für den ersten Parameter geben sie bitte das Scale Widget an, auf
welches sich diese Funktion beziehen soll. Auch hier benötigen wir
wieder ein casten des Types mit GTK_SCALE(scale). Geben sie für
den 2.Parameter FALSE an werden die Zahlen nicht angezeigt, geben
sie TRUE werden sie angezeigt. In unser Programmbeispiel würden sie mit:
gtk_scale_set_draw_value(GTK_SCALE(hscale1), FALSE);
die Anzeige des ersten Scale Widget links abschalten. Mit TRUE könnten
sie die Anzeige wieder aktivieren.
Wollen sie die Anzahl der Stellen nach dem Komma verändern bzw. gar keine
mehr anzeigen, so verwenden sie die Funktion:
void gtk_scale_set_digits(GtkScale *scale, gint digits);
Damit stellen sie das Scale Widget scale auf digits Stellen Anzeige nach dem
Komma. Maximal können sie 13 Stellen anzeigen lassen. Wollen sie keine
Stelle nach dem Komma anzeigen, so geben sie 0 an. Beispiel:
gtk_scale_set_digits(GTK_SCALE(hscale1), 0); //keine Stellen nach dem Komma anz.
gtk_scale_set_digits(GTK_SCALE(hscale2), 10); //10 Stellen nach dem Komma anz.
Die Position der Anzeige der Zahlen können sie mit der Funktion:
void gtk_scale_set_value_pos(GtkScale *scale, GtkPositionType pos);
einstellen. Der erste Parameter ist wieder wie immer. Beim zweiten können sie
folgende Angaben machen:
- GTK_POS_LEFT - Anzeige an der linken Seite
- GTK_POS_RIGHT - Anzeige an der rechten Seite
- GTK_POS_TOP - Anzeige über dem Scale Widget
- GTK_POS_BOTTOM - Anzeige unter dem Scale Widget

© 2001,2002 Jürgen Wolf
|