Spec-Zone.ru › GTK 4.0

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

Иерархия объектов

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkButton
                ╰── 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

a GtkToggleButton.

gtk_toggle_button_get_active ()

gboolean
gtk_toggle_button_get_active (GtkToggleButton *toggle_button);

Запрашивает состояние GtkToggleButton и возвращает его текущее состояние. Возвращает TRUE , если кнопка переключения нажата, и FALSE , если она поднята.

Параметры

toggle_button

a GtkToggleButton.

Возвращает

значение типа gboolean.

gtk_toggle_button_set_active ()

void
gtk_toggle_button_set_active (GtkToggleButton *toggle_button,
                              gboolean is_active);

Устанавливает состояние кнопки переключения. Установите в TRUE , если вы хотите, чтобы GtkToggleButton была «нажатой», и в FALSE , чтобы её поднять.

Если состояние кнопки меняется, это действие вызывает издаваемый сигнал “toggled”.

Параметры

toggle_button

a GtkToggleButton.

is_active

TRUE или FALSE.

gtk_toggle_button_set_group ()

void
gtk_toggle_button_set_group (GtkToggleButton *toggle_button,
                             GtkToggleButton *group);

Добавляет self в группу group . В группе нескольких кнопок переключения активной может быть только одна кнопка.

Обратите внимание, что тот же эффект можно получить с помощью API GtkActionable, используя один и тот же action с параметрами типа и состояния 's' для всех кнопок в группе, и давая каждой кнопке своё целевое значение.

Параметры

toggle_button

a GtkToggleButton

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

данные пользователя, установленные при подключении обработчика сигнала.

Флаги: Выполнение первым

См. также

GtkButton, GtkCheckButton

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API