GtkWidgetΒ +---- GtkEntryΒ Β Β Β Β Β Β Β +----Β GtkSpinButtonΠ ΡΠ½ΠΎΠ²Π° API ΠΏΠΎΠ½ΡΡΠ΅Π½, ΠΈ ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ:
<b>GtkWidget* gtk_spin_button_new(GtkAdjustment *adjustment,</b><b>Β gdouble climb_rate, guint digits);</b><b>GtkWidget* gtk_spin_button_new_with_range(gdouble min, gdouble max,</b><b>Β gdouble step);</b><b>void gtk_spin_button_set_digits(GtkSpinButton *spin_button, guint digits);</b><b>void gtk_spin_button_set_increments(GtkSpinButton *spin_button,</b><b>Β gdouble step, gdouble page);</b><b>void gtk_spin_button_set_range(GtkSpinButton *spin_button, gdouble min,</b><b>Β gdouble max);</b><b>gdouble gtk_spin_button_get_value(GtkSpinButton *spin_button);</b><b>gint gtk_spin_button_get_value_as_int(GtkSpinButton *spin_button);</b><b>void gtk_spin_button_set_value(GtkSpinButton *spin button, gdouble value);</b>ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°
GtkSpinButtongtk_spin_button_newGtkAdjustmentGtkAdjustmentGtkHScaleGtkVScaleΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΈΠΏΠ°
GtkAdjustment<b>GtkObject* gtk_adjustment_new(gdouble value, gdouble lower,</b><b>Β gdouble upper, gdouble step_increment,</b><b>Β gdouble page_increment, gdouble page_size);</b>ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
step_incrementpage_incrementGtkSpinButtonstep_incrementpage_incrementpage_sizeGtkSpinButtonΠΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ,
climb_rategtk_spin_button_newdigitsdigitsΠ€ΡΠ½ΠΊΡΠΈΡ
gtk_spin_button_new_with_rangeGtkAdjustmentΠΡΠΎΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
gtk_spin_button_getvaluegtk_spin_button_get_value_as_intΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 16.5.
GtkSpinButtonΠ‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π² ΠΊΠΎΡΠΎΡΠΊΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΊΠ°ΠΊ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°-ΡΡΠ΅ΡΡΠΈΠΊ GtkSpinButton. ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅ ΡΠ°ΠΉΠ» spin.Ρ.
#include <gtk/gtk.h>void closeApp(GtkWidget *window, gpointer data) {Β gtk_main_quit();}int main(int argc, char *argv[]) {Β GtkWidget* window;Β GtkWidget *spinbutton;Β GtkObject *adjustment;Β gtk_init(&argc, &argv);Β window = gtk_window_new(GTK_WINDOW_TOPLEVEL);Β gtk_window_set_default_size(GTK_WINDOW(window), 300, 200);Β g_signal_connect(GTK_OBJECT(window), "destroy",Β GTK_SIGNAL_FUNC(closeApp), NULL);Β adjustment = gtk_adjustment_new(100.0, 50.0, 150.0, 0.5, 0.05, 0.05);Β spinbutton = gtk_spin_button_new(GTK_ADJUSTMENT(adjustment), 0.01, 2);Β gtk_container_add(GTK_CONTAINER(window), spinbutton);Β gtk_widget_show_all(window);Β gtk_main();Β return 0;}ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ-ΡΡΠ΅ΡΡΠΈΠΊ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ 50β150 (ΡΠΈΡ. 16.9).

Π ΠΈΡ. 16.9Β
GtkButton
ΠΡ ΡΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ
GtkButtonGtkButtonGtkButtonΒ +----GtkToggleButtonΒ Β Β Β Β Β +----GtkCheckButtonΒ Β Β Β Β Β Β Β Β Β Β Β Β +----GtkRadioButtonΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ², ΠΊΠ½ΠΎΠΏΠΊΠ°-ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΡΠΈΠΏΠ°
GtkToggleButtonGtkButtonGtkCheckButtonGtkToggleButtonGtkRadioButtonΠΠΈΠ΄ΠΆΠ΅Ρ
GtkToggleButtonGtkButtonGtkToggleButtonGtkToggleButtonclicked