GtkToggleButton
GtkToggleButton — Создание кнопок, сохраняющих своё состояние
Функции
| GtkWidget * | gtk_toggle_button_new () |
| GtkWidget * | gtk_toggle_button_new_with_label () |
| GtkWidget * | gtk_toggle_button_new_with_mnemonic () |
| void | gtk_toggle_button_toggled () |
| gboolean | gtk_toggle_button_get_active () |
| void | gtk_toggle_button_set_active () |
| void | gtk_toggle_button_set_group () |
Свойства
| gboolean | active | Чтение / Запись |
| GtkToggleButton * | group | Запись |
Сигналы
| void | toggled | Выполняется первой |
Типы и значения
| struct | GtkToggleButton |
Реализованные интерфейсы
GtkToggleButton реализует GtkAccessible, GtkBuildable, GtkConstraintTarget и GtkActionable.
Файлы
#include <gtk/gtk.h>
Описание
A GtkToggleButton — это GtkButton, который сохраняет «нажатое» состояние после нажатия. Нажатие повторно вернёт кнопку в обычное состояние.
Кнопка-переключатель создаётся с помощью вызова gtk_toggle_button_new() или gtk_toggle_button_new_with_label(). Если используется первый вариант, рекомендуется поместить виджеты (такие как GtkLabel и/или GtkImage) в контейнер кнопки-переключателя. (См. GtkButton для получения дополнительной информации).
Состояние GtkToggleButton может быть установлено явно с помощью gtk_toggle_button_set_active() и получено с помощью gtk_toggle_button_get_active().
Для простого переключения состояния кнопки-переключателя используйте gtk_toggle_button_toggled().
Узлы CSS
GtkToggleButton имеет единственный узел CSS с именем button. Чтобы отличить его от обычной GtkButton, он получает класс стиля .toggle.
Создание двух виджетов GtkToggleButton.
static void output_state (GtkToggleButton *source, gpointer user_data) {
printf ("Active: %d\n", gtk_toggle_button_get_active (source));
}
void make_toggles (void) {
GtkWidget *window, *toggle1, *toggle2;
GtkWidget *box;
const char *text;
window = gtk_window_new ();
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
text = "Hi, I’m a toggle button.";
toggle1 = gtk_toggle_button_new_with_label (text);
g_signal_connect (toggle1, "toggled",
G_CALLBACK (output_state),
NULL);
gtk_box_append (GTK_BOX (box), toggle1);
text = "Hi, I’m a toggle button.";
toggle2 = gtk_toggle_button_new_with_label (text);
g_signal_connect (toggle2, "toggled",
G_CALLBACK (output_state),
NULL);
gtk_box_append (GTK_BOX (box), toggle2);
gtk_window_set_child (GTK_WINDOW (window), box);
gtk_widget_show (window);
}Функции
gtk_toggle_button_new ()
GtkWidget *
gtk_toggle_button_new (void); Создаёт новую кнопку переключения. Виджет должен быть помещён в кнопку, как в gtk_button_new().
Возвращает
новую кнопку переключения.
gtk_toggle_button_new_with_label ()
GtkWidget *
gtk_toggle_button_new_with_label (const char *label); Создаёт новую кнопку переключения с текстовой меткой.
Параметры
label | строка, содержащая сообщение, которое должно быть размещено в кнопке переключения. |
Возвращает
новую кнопку переключения.
gtk_toggle_button_new_with_mnemonic ()
GtkWidget *
gtk_toggle_button_new_with_mnemonic (const char *label); Создаёт новую GtkToggleButton содержащую метку. Метка будет создана с помощью gtk_label_new_with_mnemonic(), поэтому нижние подчёркивания в label указывают на мнемонический символ кнопки.
Параметры
label | текст кнопки, с нижним подчёркиванием перед мнемоническим символом. |
Возвращает
новую GtkToggleButton
gtk_toggle_button_toggled ()
void
gtk_toggle_button_toggled (GtkToggleButton *toggle_button); Издаёт сигнал “toggled” для GtkToggleButton. В приложении нет веских причин для вызова этой функции.
Параметры
toggle_button |
gtk_toggle_button_get_active ()
gboolean
gtk_toggle_button_get_active (GtkToggleButton *toggle_button); Запрашивает состояние GtkToggleButton и возвращает его текущее состояние. Возвращает TRUE , если кнопка переключения нажата, и FALSE , если она поднята.
Параметры
toggle_button |
Возвращает
значение типа gboolean.
gtk_toggle_button_set_active ()
void gtk_toggle_button_set_active (GtkToggleButton *toggle_button,gboolean is_active);
Устанавливает состояние кнопки переключения. Установите в TRUE , если вы хотите, чтобы GtkToggleButton была «нажатой», и в FALSE , чтобы её поднять.
Если состояние кнопки меняется, это действие вызывает издаваемый сигнал “toggled”.
Параметры
toggle_button | ||
is_active |
|
gtk_toggle_button_set_group ()
void gtk_toggle_button_set_group (GtkToggleButton *toggle_button,GtkToggleButton *group);
Добавляет self в группу group . В группе нескольких кнопок переключения активной может быть только одна кнопка.
Обратите внимание, что тот же эффект можно получить с помощью API GtkActionable, используя один и тот же action с параметрами типа и состояния 's' для всех кнопок в группе, и давая каждой кнопке своё целевое значение.
Параметры
toggle_button | ||
group | другая GtkToggleButton для создания группы. | [nullable][transfer none] |
Типы и значения
struct GtkToggleButton
struct GtkToggleButton;
Подробное описание свойств
Свойство “active”
“active” gboolean
Если кнопка переключения должна быть нажата.
Владелец: GtkToggleButton
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “group”
“group” GtkToggleButton *
Кнопка переключения, к группе которой принадлежит этот виджет.
Владелец: GtkToggleButton
Флаги: Запись
Подробное описание сигналов
Сигнал “toggled”
void user_function (GtkToggleButton *togglebutton, gpointer user_data)
Должен быть подключён, если вы хотите выполнить действие всякий раз, когда состояние GtkToggleButton меняется.
Параметры
togglebutton | объект, который получил сигнал. | |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
Флаги: Выполнение первым
См. также
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkToggleButton.html