Основы программирования в Linux
Основы программирования в Linux читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
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>
Для создания виджета
GtkSpinButton
gtk_spin_button_new
GtkAdjustment
GtkAdjustment
GtkHScale
GtkVScale
Для создания объекта типа
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_increment
page_increment
GtkSpinButton
step_increment
page_increment
page_size
GtkSpinButton
Второй параметр,
climb_rate
gtk_spin_button_new
digits
digits
Функция
gtk_spin_button_new_with_range
GtkAdjustment
Прочесть текущее значение очень легко благодаря функции
gtk_spin_button_getvalue
gtk_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
Вы уже видели виджет кнопки
GtkButton
GtkButton
GtkButton
+----GtkToggleButton
+----GtkCheckButton
+----GtkRadioButton
Как видно из иерархии виджетов, кнопка-переключатель типа
GtkToggleButton
GtkButton
GtkCheckButton
GtkToggleButton
GtkRadioButton
Виджет
GtkToggleButton
GtkButton
GtkToggleButton
GtkToggleButton
clicked