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_set_mode () |
| gboolean | gtk_toggle_button_get_mode () |
| void | gtk_toggle_button_toggled () |
| gboolean | gtk_toggle_button_get_active () |
| void | gtk_toggle_button_set_active () |
| gboolean | gtk_toggle_button_get_inconsistent () |
| void | gtk_toggle_button_set_inconsistent () |
Свойства
| gboolean | active | Чтение / Запись |
| gboolean | draw-indicator | Чтение / Запись |
| gboolean | inconsistent | Чтение / Запись |
Сигналы
| void | toggled | Выполняется первым |
Типы и значения
| struct | GtkToggleButton |
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkWidget
╰── GtkContainer
╰── GtkBin
╰── GtkButton
╰── GtkToggleButton
├── GtkCheckButton
╰── GtkMenuButton
Реализованные интерфейсы
GtkToggleButton реализует AtkImplementorIface, GtkBuildable, GtkActionable и GtkActivatable.
Файлы заголовков
#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 (GTK_WINDOW_TOPLEVEL);
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
text = "Hi, I’m a toggle button.";
toggle1 = gtk_toggle_button_new_with_label (text);
// Makes this toggle button invisible
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (toggle1),
TRUE);
g_signal_connect (toggle1, "toggled",
G_CALLBACK (output_state),
NULL);
gtk_container_add (GTK_CONTAINER (box), toggle1);
text = "Hi, I’m a toggle button.";
toggle2 = gtk_toggle_button_new_with_label (text);
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (toggle2),
FALSE);
g_signal_connect (toggle2, "toggled",
G_CALLBACK (output_state),
NULL);
gtk_container_add (GTK_CONTAINER (box), toggle2);
gtk_container_add (GTK_CONTAINER (window), box);
gtk_widget_show_all (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 gchar *label); Создаёт новую кнопку переключения с текстовой меткой.
Параметры
label | строка, содержащая сообщение, которое будет размещено в кнопке переключения. |
Возвращаемое значение
новая кнопка переключения.
gtk_toggle_button_new_with_mnemonic ()
GtkWidget *
gtk_toggle_button_new_with_mnemonic (const gchar *label); Создаёт новую кнопку переключения GtkToggleButton с меткой. Метка создаётся с помощью gtk_label_new_with_mnemonic(), поэтому подчёркивания в label указывают на мнемонический символ для кнопки.
Параметры
label | текст кнопки с подчёркиванием перед мнемоническим символом |
Возвращаемое значение
новая кнопка переключения GtkToggleButton
gtk_toggle_button_set_mode ()
void gtk_toggle_button_set_mode (GtkToggleButton *toggle_button,gboolean draw_indicator);
Устанавливает, отображается ли кнопка как отдельный индикатор и метка. Вы можете вызвать эту функцию для кнопки выбора или радиокнопки с draw_indicator = FALSE для того, чтобы кнопка выглядела как обычная кнопка.
Это можно использовать для создания связанной полосы кнопок, которые работают как GtkStackSwitcher.
Эта функция влияет только на экземпляры классов, таких как GtkCheckButton и GtkRadioButton, производных от GtkToggleButton, а не на экземпляры GtkToggleButton сами по себе.
Параметры
toggle_button | кнопка переключения GtkToggleButton | |
draw_indicator | если |
gtk_toggle_button_get_mode ()
gboolean
gtk_toggle_button_get_mode (GtkToggleButton *toggle_button); Возвращает, отображается ли кнопка как отдельный индикатор и метка. См. gtk_toggle_button_set_mode().
Параметры
toggle_button | кнопка переключения GtkToggleButton |
Возвращаемое значение
TRUE если кнопка переключения отображается как отдельный индикатор и метка.
gtk_toggle_button_toggled ()
void
gtk_toggle_button_toggled (GtkToggleButton *toggle_button); Вызывает сигнал “toggled” для GtkToggleButton. Приложению не следует вызывать эту функцию.
Параметры
toggle_button | кнопка переключения GtkToggleButton. |
gtk_toggle_button_get_active ()
gboolean
gtk_toggle_button_get_active (GtkToggleButton *toggle_button); Опрашивает GtkToggleButton и возвращает её текущее состояние. Возвращает TRUE, если кнопка переключения нажата, и FALSE, если она поднята.
Параметры
toggle_button | кнопка переключения GtkToggleButton. |
Возвращаемое значение
значение типа gboolean.
gtk_toggle_button_set_active ()
void gtk_toggle_button_set_active (GtkToggleButton *toggle_button,gboolean is_active);
Устанавливает состояние кнопки переключения. Установите в TRUE, если вы хотите, чтобы GtkToggleButton была «нажата», и FALSE, чтобы её поднять. Это действие вызывает срабатывание сигнала “toggled” и “clicked”.
Параметры
toggle_button | кнопка переключения GtkToggleButton. | |
is_active |
|
gtk_toggle_button_get_inconsistent ()
gboolean
gtk_toggle_button_get_inconsistent (GtkToggleButton *toggle_button); Получает значение, установленное gtk_toggle_button_set_inconsistent().
Параметры
toggle_button | кнопка переключения GtkToggleButton |
Возвращаемое значение
TRUE, если кнопка отображается как несогласованная, FALSE в противном случае
gtk_toggle_button_set_inconsistent ()
void gtk_toggle_button_set_inconsistent (GtkToggleButton *toggle_button,gboolean setting);
Если пользователь выбрал диапазон элементов (например, текст или ячейки электронных таблиц), на которые влияет кнопка переключения, и текущие значения в этом диапазоне не согласованы, вы можете отобразить кнопку в «промежуточном» состоянии. Эта функция включает отображение «промежуточного» состояния. Обычно вы выключаете несогласованное состояние, если пользователь переключает кнопку переключения. Это нужно делать вручную, gtk_toggle_button_set_inconsistent() влияет только на визуальное отображение, а не на семантику кнопки.
Параметры
toggle_button | кнопка переключения GtkToggleButton | |
setting |
|
Типы и значения
struct GtkToggleButton
struct GtkToggleButton;
Подробное описание свойств
Свойство “active”
“active” gboolean
Если кнопка переключения должна быть нажата.
Владелец: GtkToggleButton
Флаги: Чтение/Запись
Значение по умолчанию: FALSE
Свойство “draw-indicator”
“draw-indicator” gboolean
Если отображается часть кнопки переключения.
Владелец: GtkToggleButton
Флаги: Чтение/Запись
Значение по умолчанию: FALSE
Свойство “inconsistent”
“inconsistent” gboolean
Если кнопка переключения находится в «промежуточном» состоянии.
Владелец: GtkToggleButton
Флаги: Чтение/Запись
Значение по умолчанию: FALSE
Подробности сигналов
Сигнал “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.gnome.org/gtk3/3.24/GtkToggleButton.html