Spec-Zone.ru › GTK 4.0

GtkAssistant

GtkAssistant — Виджет, используемый для руководства пользователями по многоступенчатым операциям

Функции

GtkWidget * gtk_assistant_new ()
GtkAssistantPage * gtk_assistant_get_page ()
GListModel * gtk_assistant_get_pages ()
GtkWidget * gtk_assistant_page_get_child ()
int gtk_assistant_get_current_page ()
void gtk_assistant_set_current_page ()
int gtk_assistant_get_n_pages ()
GtkWidget * gtk_assistant_get_nth_page ()
int gtk_assistant_prepend_page ()
int gtk_assistant_append_page ()
int gtk_assistant_insert_page ()
void gtk_assistant_remove_page ()
int (*GtkAssistantPageFunc) ()
void gtk_assistant_set_forward_page_func ()
void gtk_assistant_set_page_type ()
GtkAssistantPageType gtk_assistant_get_page_type ()
void gtk_assistant_set_page_title ()
const char * gtk_assistant_get_page_title ()
void gtk_assistant_set_page_complete ()
gboolean gtk_assistant_get_page_complete ()
void gtk_assistant_add_action_widget ()
void gtk_assistant_remove_action_widget ()
void gtk_assistant_update_buttons_state ()
void gtk_assistant_commit ()
void gtk_assistant_next_page ()
void gtk_assistant_previous_page ()

Свойства

GListModel * pages Чтение
int use-header-bar Чтение/Запись/Только для создания
GtkWidget * child Чтение/Запись/Только для создания
gboolean complete Чтение/Запись
GtkAssistantPageType page-type Чтение/Запись
char * title Чтение/Запись

Сигналы

void apply Выполнить последним
void cancel Выполнить последним
void close Выполнить последним
void escape Действие
void prepare Выполнить последним

Типы и значения

GtkAssistant
GtkAssistantPage
перечисление GtkAssistantPageType

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

    GObject
    ├── GInitiallyUnowned
    │   ╰── GtkWidget
    │       ╰── GtkWindow
    │           ╰── GtkAssistant
    ╰── GtkAssistantPage

Реализованные интерфейсы

GtkAssistant реализует GtkAccessible, GtkBuildable, GtkConstraintTarget, GtkNative, GtkShortcutManager и GtkRoot.

Файлы заголовков

#include <gtk/gtk.h>

Описание

Виджет GtkAssistant используется для представления сложных операций, разбитых на несколько шагов. Каждый шаг состоит из одной или нескольких страниц. GtkAssistant направляет пользователя по страницам и управляет потоком страниц для сбора данных, необходимых для выполнения операции.

GtkAssistant определяет, какие кнопки отображать и активировать, основываясь на порядке страниц и типе каждой страницы, а также на состоянии, например, завершении (completion) и подтверждении (committed) страниц.

Если у вас есть случай, который не соответствует способу обработки кнопок в GtkAssistant, вы можете использовать тип страницы GTK_ASSISTANT_PAGE_CUSTOM и обрабатывать кнопки самостоятельно.

GtkAssistant сохраняет объект GtkAssistantPage для каждого добавленного дочернего элемента, который содержит дополнительные свойства для каждого элемента. Вы получаете GtkAssistantPage для дочернего элемента с помощью gtk_assistant_get_page().

GtkAssistant как GtkBuildable

Реализация GtkAssistant интерфейса GtkBuildable экспонирует action_area как внутренние дочерние элементы с именем «action_area».

Чтобы добавить страницы в помощника в GtkBuilder, просто добавьте его как дочерний элемент к объекту GtkAssistant. Если вам нужно установить свойства для каждого объекта, создайте объект GtkAssistantPage явно и установите дочерний виджет в качестве свойства на нём.

Узлы CSS

GtkAssistant имеет один узел CSS с именем «window» и классом стиля «.assistant».

Функции

gtk_assistant_new ()

GtkWidget *
gtk_assistant_new (void);

Создаёт новый GtkAssistant.

Возвращаемое значение

новый созданный GtkAssistant

gtk_assistant_get_page ()

GtkAssistantPage *
gtk_assistant_get_page (GtkAssistant *assistant,
                        GtkWidget *child);

Возвращает объект GtkAssistantPage для child .

Параметры

assistant

a GtkAssistant

child

дочерний элемент assistant

Возвращаемое значение

объект GtkAssistantPage для child .

[transfer none]

gtk_assistant_get_pages ()

GListModel *
gtk_assistant_get_pages (GtkAssistant *assistant);

Получает модель списка страниц помощника.

Параметры

assistant

a GtkAssistant

Возвращаемое значение

Модель списка страниц.

[transfer full][attributes element-type=GtkAssistantPage]

gtk_assistant_page_get_child ()

GtkWidget *
gtk_assistant_page_get_child (GtkAssistantPage *page);

Возвращает дочерний элемент, к которому относится page .

Параметры

page

a GtkAssistantPage

Возвращаемое значение

дочерний элемент, к которому относится page .

[transfer none]

gtk_assistant_get_current_page ()

int
gtk_assistant_get_current_page (GtkAssistant *assistant);

Возвращает номер текущей страницы.

Параметры

assistant

a GtkAssistant

Возвращаемое значение

Индекс (начиная с 0) текущей страницы в assistant, или -1, если у assistant нет страниц или нет текущей страницы.

gtk_assistant_set_current_page ()

void
gtk_assistant_set_current_page (GtkAssistant *assistant,
                                int page_num);

Переключает страницу на page_num .

Обратите внимание, что это необходимо только в пользовательских кнопках, так как навигацию по страницам можно задать с помощью gtk_assistant_set_forward_page_func().

Параметры

assistant

a GtkAssistant

page_num

индекс страницы для переключения, начиная с 0. Если отрицательное, используется последняя страница. Если больше, чем количество страниц в assistant, ничего не произойдёт.

gtk_assistant_get_n_pages ()

int
gtk_assistant_get_n_pages (GtkAssistant *assistant);

Возвращает количество страниц в assistant

Параметры

assistant

a GtkAssistant

Возвращаемое значение

количество страниц в assistant

gtk_assistant_get_nth_page ()

GtkWidget *
gtk_assistant_get_nth_page (GtkAssistant *assistant,
                            int page_num);

Возвращает дочерний виджет, содержащийся на странице с номером page_num .

Параметры

assistant

a GtkAssistant

page_num

индекс страницы в assistant , или -1 для получения последней страницы

Возвращаемое значение

дочерний виджет, или NULL если page_num выходит за пределы.

[nullable][transfer none]

gtk_assistant_prepend_page ()

int
gtk_assistant_prepend_page (GtkAssistant *assistant,
                            GtkWidget *page);

Вставляет страницу в начало assistant .

Параметры

assistant

a GtkAssistant

page

a GtkWidget

Возвращаемое значение

индекс (начиная с 0) вставленной страницы

gtk_assistant_append_page ()

int
gtk_assistant_append_page (GtkAssistant *assistant,
                           GtkWidget *page);

Добавляет страницу в конец assistant .

Параметры

assistant

a GtkAssistant

page

a GtkWidget

Возвращаемое значение

индекс (начиная с 0) вставленной страницы

gtk_assistant_insert_page ()

int
gtk_assistant_insert_page (GtkAssistant *assistant,
                           GtkWidget *page,
                           int position);

Вставляет страницу в assistant в заданную позицию.

Параметры

assistant

a GtkAssistant

page

a GtkWidget

position

индекс (начиная с 0) для вставки страницы, или -1 для добавления в конец assistant

Возвращаемое значение

индекс (начиная с 0) вставленной страницы

gtk_assistant_remove_page ()

void
gtk_assistant_remove_page (GtkAssistant *assistant,
                           int page_num);

Удаляет страницу page_num из assistant .

Параметры

assistant

a GtkAssistant

page_num

индекс страницы в assistant , или -1 для удаления последней страницы

GtkAssistantPageFunc ()

int
(*GtkAssistantPageFunc) (int current_page,
                         gpointer data);

Функция, используемая gtk_assistant_set_forward_page_func() для определения следующей страницы, исходя из текущей. Она вызывается как при нажатии пользователем кнопки «вперед», так и для обработки поведения кнопки «назад».

Параметры

current_page

Номер страницы, используемый для расчёта следующей страницы.

data

данные пользователя.

[closure]

Возвращаемое значение

Номер следующей страницы.

gtk_assistant_set_forward_page_func ()

void
gtk_assistant_set_forward_page_func (GtkAssistant *assistant,
                                     GtkAssistantPageFunc page_func,
                                     gpointer data,
                                     GDestroyNotify destroy);

Устанавливает функцию перехода к следующей странице на page_func .

Эта функция будет использоваться для определения следующей страницы при нажатии пользователем кнопки «вперед». Установка page_func в NULL заставит помощника использовать функцию по умолчанию, которая переходит к следующей видимой странице.

Параметры

assistant

структура GtkAssistant

page_func

функция GtkAssistantPageFunc или NULL для использования функции по умолчанию.

[allow-none]

data

данные пользователя для page_func

destroy

уведомление об удалении для data

gtk_assistant_set_page_type ()

void
gtk_assistant_set_page_type (GtkAssistant *assistant,
                             GtkWidget *page,
                             GtkAssistantPageType type);

Устанавливает тип страницы для page .

Тип страницы определяет поведение страницы в assistant .

Параметры

assistant

структура GtkAssistant

page

страница assistant

type

новый тип для page

gtk_assistant_get_page_type ()

GtkAssistantPageType
gtk_assistant_get_page_type (GtkAssistant *assistant,
                             GtkWidget *page);

Получает тип страницы page .

Параметры

assistant

структура GtkAssistant

page

страница assistant

Возвращаемое значение

тип страницы page

gtk_assistant_set_page_title ()

void
gtk_assistant_set_page_title (GtkAssistant *assistant,
                              GtkWidget *page,
                              const char *title);

Устанавливает заголовок для page .

Заголовок отображается в области заголовка помощника, когда page является текущей страницей.

Параметры

assistant

структура GtkAssistant

page

страница assistant

title

новый заголовок для page

gtk_assistant_get_page_title ()

const char *
gtk_assistant_get_page_title (GtkAssistant *assistant,
                              GtkWidget *page);

Получает заголовок для page .

Параметры

assistant

структура GtkAssistant

page

страница assistant

Возвращаемое значение

заголовок для page

gtk_assistant_set_page_complete ()

void
gtk_assistant_set_page_complete (GtkAssistant *assistant,
                                 GtkWidget *page,
                                 gboolean complete);

Устанавливает, завершены ли данные page.

Это заставит assistant обновить состояние кнопок, чтобы можно было продолжить задачу.

Параметры

assistant

структура GtkAssistant

page

страница assistant

complete

статус завершённости страницы

gtk_assistant_get_page_complete ()

gboolean
gtk_assistant_get_page_complete (GtkAssistant *assistant,
                                 GtkWidget *page);

Получает, завершена ли page.

Параметры

assistant

структура GtkAssistant

page

страница assistant

Возвращаемое значение

TRUE если page завершена.

gtk_assistant_add_action_widget ()

void
gtk_assistant_add_action_widget (GtkAssistant *assistant,
                                 GtkWidget *child);

Добавляет виджет в область действий GtkAssistant.

Параметры

assistant

структура GtkAssistant

child

структура GtkWidget

gtk_assistant_remove_action_widget ()

void
gtk_assistant_remove_action_widget (GtkAssistant *assistant,
                                    GtkWidget *child);

Удаляет виджет из области действий GtkAssistant.

Параметры

assistant

структура GtkAssistant

child

структура GtkWidget

gtk_assistant_update_buttons_state ()

void
gtk_assistant_update_buttons_state (GtkAssistant *assistant);

Принудительно пересчитывает состояние кнопок assistant.

GTK автоматически позаботится об этом в большинстве ситуаций, например, когда пользователь переходит на другую страницу или изменяется видимость или завершённость страницы.

В некоторых случаях может потребоваться вызвать эту функцию, например, если изменение значения на текущей странице повлияет на будущий поток страницы помощника.

Параметры

assistant

структура GtkAssistant

gtk_assistant_commit ()

void
gtk_assistant_commit (GtkAssistant *assistant);

Удаляет историю посещённых страниц, чтобы кнопка «Назад» не отображалась на текущей странице, а также удаляет кнопку «Отмена» со следующих страниц.

Используйте эту функцию, когда информация, предоставленная до текущей страницы, в дальнейшем считается постоянной и не может быть изменена или отменена. Например, для отображения страницы прогресса для отслеживания длительной, необратимой операции после того, как пользователь нажал «Применить» на странице подтверждения.

Параметры

assistant

объект GtkAssistant

gtk_assistant_next_page ()

void
gtk_assistant_next_page (GtkAssistant *assistant);

Переход к следующей странице.

Вызов этой функции, когда следующей страницы нет, является ошибкой программирования.

Эта функция предназначена для использования при создании страниц типа GTK_ASSISTANT_PAGE_CUSTOM.

Параметры

assistant

объект GtkAssistant

gtk_assistant_previous_page ()

void
gtk_assistant_previous_page (GtkAssistant *assistant);

Переход к предыдущей посещённой странице.

Вызов этой функции, когда предыдущей страницы нет, является ошибкой программирования.

Эта функция предназначена для использования при создании страниц типа GTK_ASSISTANT_PAGE_CUSTOM.

Параметры

assistant

объект GtkAssistant

Типы и значения

GtkAssistant

typedef struct _GtkAssistant GtkAssistant;

GtkAssistantPage

typedef struct _GtkAssistantPage GtkAssistantPage;

перечисление GtkAssistantPageType

Перечисление для определения роли страницы внутри GtkAssistant. Используется для управления чувствительностью и отображением кнопок.

Обратите внимание, что помощник должен завершать поток страниц страницей типа GTK_ASSISTANT_PAGE_CONFIRM, GTK_ASSISTANT_PAGE_SUMMARY или GTK_ASSISTANT_PAGE_PROGRESS для корректной работы.

Кнопка «Отмена» отображается только если страница не «зафиксирована». Подробности см. в gtk_assistant_commit().

Члены

GTK_ASSISTANT_PAGE_CONTENT

На странице стандартное содержимое. Отображаются кнопки «Назад» и «Вперед».

GTK_ASSISTANT_PAGE_INTRO

На странице содержится введение к задаче помощника. Отображается только кнопка «Вперед», если есть следующая страница.

GTK_ASSISTANT_PAGE_CONFIRM

На странице пользователь подтверждает или отменяет изменения. Отображаются кнопки «Назад» и «Применить».

GTK_ASSISTANT_PAGE_SUMMARY

На странице отображаются выполненные изменения. Отображается только кнопка «Закрыть».

GTK_ASSISTANT_PAGE_PROGRESS

Используется для задач, выполнение которых занимает много времени, блокирует помощника, пока страница не будет помечена как завершенная. Отображается только кнопка «Назад».

GTK_ASSISTANT_PAGE_CUSTOM

Используется, когда другие типы страниц не подходят. Кнопки не отображаются, и приложение должно добавить свои собственные кнопки через gtk_assistant_add_action_widget().

Подробное описание свойств

Свойство “pages”

  “pages”                    GListModel *

Страницы помощника.

Владелец: GtkAssistant

Флаги: Чтение

Свойство “use-header-bar”

  “use-header-bar”           int

TRUE если помощник использует GtkHeaderBar для кнопок действий вместо области действий.

По техническим причинам это свойство объявлено целым числом, но вы должны установить его только на TRUE или FALSE.

Владелец: GtkAssistant

Флаги: Чтение / Запись / Только для создания

Допустимые значения: [-1,1]

Значение по умолчанию: -1

Свойство “child”

  “child”                    GtkWidget *

Содержимое страницы помощника.

Владелец: GtkAssistantPage

Флаги: Чтение / Запись / Только для создания

Свойство “complete”

  “complete”                 gboolean

Установка свойства "complete" в TRUE помечает страницу как завершенную (т.е.: все необходимые поля заполнены). GTK использует эту информацию для управления чувствительностью кнопок навигации.

Владелец: GtkAssistantPage

Флаги: Чтение / Запись

Значение по умолчанию: FALSE

Свойство “page-type”

  “page-type”                GtkAssistantPageType

Тип страницы помощника.

Владелец: GtkAssistantPage

Флаги: Чтение / Запись

Значение по умолчанию: GTK_ASSISTANT_PAGE_CONTENT

Свойство “title”

  “title”                    char *

Заголовок страницы.

Владелец: GtkAssistantPage

Флаги: Чтение / Запись

Значение по умолчанию: NULL

Подробности сигналов

Сигнал “apply”

void
user_function (GtkAssistant *assistant,
               gpointer      user_data)

Сигнал ::apply генерируется при нажатии кнопки «Применить».

По умолчанию GtkAssistant переходит к следующей странице, если текущая страница не является последней.

Обработчик сигнала ::apply должен выполнять действия, для которых помощник собрал данные. Если выполнение действия занимает много времени, рекомендуется добавить страницу типа GTK_ASSISTANT_PAGE_PROGRESS после страницы подтверждения и обработать операцию внутри сигнала «подготовка» страницы прогресса.

Параметры

assistant

помощник GtkAssistant

user_data

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

Флаги: Run Last

Сигнал “cancel”

void
user_function (GtkAssistant *assistant,
               gpointer      user_data)

Сигнал ::cancel генерируется при нажатии кнопки «Отмена».

Параметры

assistant

помощник GtkAssistant

user_data

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

Флаги: Run Last

Сигнал “close”

void
user_function (GtkAssistant *assistant,
               gpointer      user_data)

Сигнал ::close генерируется при нажатии кнопки «Закрыть» на странице сводки или при нажатии кнопки «Применить» на последней странице (типа GTK_ASSISTANT_PAGE_CONFIRM).

Параметры

assistant

помощник GtkAssistant

user_data

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

Флаги: Run Last

Сигнал “escape”

void
user_function (GtkAssistant *assistant,
               gpointer      user_data)

Сигнал действия для привязки Escape.

Параметры

assistant

помощник GtkAssistant

user_data

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

Флаги: Действие

Сигнал “prepare”

void
user_function (GtkAssistant *assistant,
               GtkWidget    *page,
               gpointer      user_data)

Сигнал ::prepare генерируется, когда новая страница устанавливается как текущая страница помощника перед отображением новой страницы.

Обработчик этого сигнала может выполнить необходимые подготовительные действия перед отображением page .

Параметры

assistant

помощник GtkAssistant

page

текущая страница

user_data

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

Флаги: Run Last

© 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/GtkAssistant.html

Spec-Zone.ru

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