Login
Newsletter
Werbung

So, 5. Dezember 1999, 00:00

GTK Workshop: Teil IV

Das Button-Widget

Da wir uns in den früheren Teilen des GTK-Workshops mit den Grundlagen auseinandergesetzt haben, werde ich im vierten Teil (und einigen späteren Teilen) auf die verschiedenen Widget-Typen und ihre Eigenarten eingehen. Das Button-Widget soll dabei den Anfang machen. Eine Art des Button-Widgets kennen Sie bereits: die normalen Buttons.

Alle Beispiele diese Teils sind hier herunterzuladen.

Normale Buttons

Normale Buttons sind sehr leicht zu handhaben, deshalb werden sie hier auch nicht sonderlich besprochen. Es gibt zwei Wege, einen Button zu erstellen:

Erste Möglichkeit: Man erstellt einen Button, in dem der Text schon drin ist. Dies geschieht mit der Funktion gtk_button_new_with_label().

Die zweite Möglichkeit ist, einen leeren Button zu erstellen. So einen Button kann man mit gtk_button_new()erstellen. Dort kann man dann Bilder, Texte oder andere Widgets reinpacken (siehe Teil 3 des GTK-Workshops).

Ein Beispiel zu gtk_button_new()

#include <gtk/gtk.h>
int main( int argc, char *argv[] )
{
 GtkWidget *window;
 GtkWidget *button;
 GtkWidget *label;
 gtk_init( &argc,&argv );
 window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
 button = gtk_button_new();
 label = gtk_label_new("Ein label");
 gtk_container_set_border_width( GTK_CONTAINER( window ), 10 );
 /* der Button wird ins Fenster gepackt. Auf diese Weise können Sie
 aber auch Widgets in Buttons und alle anderen Container-Widgets
 packen */
 gtk_container_add( GTK_CONTAINER( window ), button );
 /* Das Label kann in den Button gepackt werden. Hier können auch
 andere Widgets, wie PackBoxes oder Radiobuttons,
 platziert werden */
 gtk_container_add( GTK_CONTAINER( button ), label );
 /* alle Widgets, die mit 'window' in Verbindung stehen, werden angezeigt */
 gtk_widget_show_all( window );
 gtk_main();
 return 0;
}

Nach dem Compilieren sollte es in etwa so aussehen:

Ein Button kann folgende Signale zurückwerfen:

  • pressed - wenn der Button gedrückt wird
  • released - wenn der Button losgelassen wird
  • clicked - wenn der Button gedrückt und losgelassen wird
  • enter - wenn der Mauszeiger über den Button geht
  • leave - wenn der Mauszeiger den Button verlässt :-(

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung