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 | Чтение/Запись |
Сигналы
Типы и значения
| 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 | ||
child | дочерний элемент |
gtk_assistant_get_pages ()
GListModel *
gtk_assistant_get_pages (GtkAssistant *assistant); Получает модель списка страниц помощника.
Параметры
assistant |
Возвращаемое значение
Модель списка страниц.
[transfer full][attributes element-type=GtkAssistantPage]
gtk_assistant_page_get_child ()
GtkWidget *
gtk_assistant_page_get_child (GtkAssistantPage *page); Возвращает дочерний элемент, к которому относится page .
Параметры
page |
Возвращаемое значение
дочерний элемент, к которому относится page .
[transfer none]
gtk_assistant_get_current_page ()
int
gtk_assistant_get_current_page (GtkAssistant *assistant); Возвращает номер текущей страницы.
Параметры
assistant |
Возвращаемое значение
Индекс (начиная с 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 | ||
page_num | индекс страницы для переключения, начиная с 0. Если отрицательное, используется последняя страница. Если больше, чем количество страниц в |
gtk_assistant_get_n_pages ()
int
gtk_assistant_get_n_pages (GtkAssistant *assistant); Возвращает количество страниц в assistant
Параметры
assistant |
Возвращаемое значение
количество страниц в assistant
gtk_assistant_get_nth_page ()
GtkWidget * gtk_assistant_get_nth_page (GtkAssistant *assistant,int page_num);
Возвращает дочерний виджет, содержащийся на странице с номером page_num .
Параметры
assistant | ||
page_num | индекс страницы в |
Возвращаемое значение
дочерний виджет, или NULL если page_num выходит за пределы.
[nullable][transfer none]
gtk_assistant_prepend_page ()
int gtk_assistant_prepend_page (GtkAssistant *assistant,GtkWidget *page);
Вставляет страницу в начало assistant .
Параметры
assistant | ||
page |
Возвращаемое значение
индекс (начиная с 0) вставленной страницы
gtk_assistant_append_page ()
int gtk_assistant_append_page (GtkAssistant *assistant,GtkWidget *page);
Добавляет страницу в конец assistant .
Параметры
assistant | ||
page |
Возвращаемое значение
индекс (начиная с 0) вставленной страницы
gtk_assistant_insert_page ()
int gtk_assistant_insert_page (GtkAssistant *assistant,GtkWidget *page,int position);
Вставляет страницу в assistant в заданную позицию.
Параметры
assistant | ||
page | ||
position | индекс (начиная с 0) для вставки страницы, или -1 для добавления в конец |
Возвращаемое значение
индекс (начиная с 0) вставленной страницы
gtk_assistant_remove_page ()
void gtk_assistant_remove_page (GtkAssistant *assistant,int page_num);
Удаляет страницу page_num из assistant .
Параметры
assistant | ||
page_num | индекс страницы в |
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 или | [allow-none] |
data | данные пользователя для | |
destroy | уведомление об удалении для |
gtk_assistant_set_page_type ()
void gtk_assistant_set_page_type (GtkAssistant *assistant,GtkWidget *page,GtkAssistantPageType type);
Устанавливает тип страницы для page .
Тип страницы определяет поведение страницы в assistant .
Параметры
assistant | структура GtkAssistant | |
page | страница | |
type | новый тип для |
gtk_assistant_get_page_type ()
GtkAssistantPageType gtk_assistant_get_page_type (GtkAssistant *assistant,GtkWidget *page);
Получает тип страницы page .
Параметры
assistant | структура GtkAssistant | |
page | страница |
Возвращаемое значение
тип страницы page
gtk_assistant_set_page_title ()
void gtk_assistant_set_page_title (GtkAssistant *assistant,GtkWidget *page,const char *title);
Устанавливает заголовок для page .
Заголовок отображается в области заголовка помощника, когда page является текущей страницей.
Параметры
assistant | структура GtkAssistant | |
page | страница | |
title | новый заголовок для |
gtk_assistant_get_page_title ()
const char * gtk_assistant_get_page_title (GtkAssistant *assistant,GtkWidget *page);
Получает заголовок для page .
Параметры
assistant | структура GtkAssistant | |
page | страница |
Возвращаемое значение
заголовок для page
gtk_assistant_set_page_complete ()
void gtk_assistant_set_page_complete (GtkAssistant *assistant,GtkWidget *page,gboolean complete);
Устанавливает, завершены ли данные page.
Это заставит assistant обновить состояние кнопок, чтобы можно было продолжить задачу.
Параметры
assistant | структура GtkAssistant | |
page | страница | |
complete | статус завершённости страницы |
gtk_assistant_get_page_complete ()
gboolean gtk_assistant_get_page_complete (GtkAssistant *assistant,GtkWidget *page);
Получает, завершена ли page.
Параметры
assistant | структура GtkAssistant | |
page | страница |
Возвращаемое значение
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 | Используется, когда другие типы страниц не подходят. Кнопки не отображаются, и приложение должно добавить свои собственные кнопки через |
Подробное описание свойств
Свойство “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