| |
GTK+ 2.0 Tutorial |
||
---|---|---|
The Button Widget |
Переключатели - это кнопки всегда находящиеся в одном из двух положений, включено или выключено. При каждом нажатии на кнопку вы переключаете её положение.
Переключатели являются основой для контроль-кнопок (check buttons) и для радио-кнопок (radio buttons), поэтому многие вызовы используемые для переключателей действительны и для них. Об этом чуть позже.
GtkWidget *gtk_toggle_button_new( void ); GtkWidget *gtk_toggle_button_new_with_label( const gchar *label ); GtkWidget *gtk_toggle_button_new_with_mnemonic( const gchar *label ); |
Как вы понимаете, они создаются тождественно нормальным кнопкам. В первой строке создается переключатель а в следующих двух, надпись(ярлык) которая в него упаковывается.
Для восстановления статуса переключателя, радио-кнопки или контроль-кнопки используем конструкцию приведенную в примере ниже. Получая доступ к активной области структуры переключателя, осуществляем контроль его состояния, после первого использования макроса GTK_TOGGLE_BUTTON определяется указатель на переключатель. Нас интересует сигнал создаваемый переключателем (the toggle button, check button, and radio button widgets) - это "toggled" сигнал. Для получения доступа к структуре контроля состояния, необходимо настроить обработчик сигналов для сигнала "toggled". Это выглядит примерно так:
void toggle_button_callback (GtkWidget *widget, gpointer data) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { /* Если выполнение останавливается здесь, кнопка переключателя нажата */ } else { /* Если выполнение останавливается здесь, кнопка переключателя не нажата */ } } |
Изменить состояние переключателя и его дочерних виджетов контроль-кнопки или радио-кнопки можно используя функцию:
void gtk_toggle_button_set_active( GtkToggleButton *toggle_button, gboolean is_active ); |
При выполнении в качестве первого аргумента создаётся кнопка, а вторым аргументом определяется состояние, TRUE или FALSE - нажата (depressed) или нет (released) соответственно. По умолчанию не нажата, тоесть FALSE.
Заметьте, при использовании функции gtk_toggle_button_set_active(), состояние изменяется и кнопка производит сигналы "clicked" и "toggled".
gboolean gtk_toggle_button_get_active (GtkToggleButton *toggle_button); |
Это возвращает текущее состояние кнопки переключателя как значение (boolean) TRUE/FALSE.
The Button Widget |
Check Buttons |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |