GtkAssistant
GtkAssistant — Виджет, используемый для руководства пользователями через многоэтапные операции
Функции
Свойства
| gint | use-header-bar | Чтение / Запись / Только для построения |
Свойства дочерних элементов
| gboolean | complete | Чтение/Запись |
| gboolean | has-padding | Чтение/Запись |
| GdkPixbuf * | header-image | Чтение/Запись |
| GtkAssistantPageType | page-type | Чтение/Запись |
| GdkPixbuf * | sidebar-image | Чтение/Запись |
| gchar * | title | Чтение/Запись |
Стилизованные свойства
| gint | content-padding | Чтение |
| gint | header-padding | Чтение |
Сигналы
| void | apply | Выполнить последним |
| void | cancel | Выполнить последним |
| void | close | Выполнить последним |
| void | escape | Действие |
| void | prepare | Выполнить последним |
Типы и значения
| структура | GtkAssistant |
| структура | GtkAssistantClass |
| перечисление | GtkAssistantPageType |
Иерархия объектов
GObject ╰── GInitiallyUnowned ╰── GtkWidget ╰── GtkContainer ╰── GtkBin ╰── GtkWindow ╰── GtkAssistant
Реализованные интерфейсы
GtkAssistant реализует AtkImplementorIface и GtkBuildable.
Файлы заголовков
#include <gtk/gtk.h>
Описание
Виджет GtkAssistant используется для представления сложной операции, разбитой на несколько этапов, направляя пользователя по страницам и контролируя поток страниц для сбора необходимых данных.
GtkAssistant контролирует отображение и активацию кнопок, основываясь на информации о последовательности страниц и типе каждой страницы, а также на состоянии, таком как завершённость страницы и статус подтверждения.
Если ваш случай не подходит под обработку GtkAssistant, вы можете использовать тип страницы GTK_ASSISTANT_PAGE_CUSTOM и управлять кнопками самостоятельно.
GtkAssistant как GtkBuildable
Реализация GtkAssistant интерфейса GtkBuildable предоставляет action_area в качестве внутренних дочерних элементов с именем “action_area”.
Чтобы добавить страницы в помощника в GtkBuilder, просто добавьте его как дочерний элемент объекта GtkAssistant и установите необходимые свойства дочерних элементов.
Узлы CSS
GtkAssistant имеет один CSS-узел с именем assistant.
Функции
gtk_assistant_new ()
GtkWidget *
gtk_assistant_new (void); Создаёт новый GtkAssistant.
Возвращает
новый созданный GtkAssistant
С: 2.10
gtk_assistant_get_current_page ()
gint
gtk_assistant_get_current_page (GtkAssistant *assistant); Возвращает номер страницы текущей страницы.
Параметры
assistant |
Возвращает
Индекс (начиная с 0) текущей страницы в assistant, или -1, если у assistant нет страниц или нет текущей страницы.
С: 2.10
gtk_assistant_set_current_page ()
void gtk_assistant_set_current_page (GtkAssistant *assistant,gint page_num);
Переключает страницу на page_num.
Обратите внимание, что это потребуется только в пользовательских кнопках, так как поток assistant можно задать с помощью gtk_assistant_set_forward_page_func().
Параметры
assistant | ||
page_num | индекс страницы для переключения, начиная с 0. Если отрицательно, используется последняя страница. Если больше, чем количество страниц в |
С: 2.10
gtk_assistant_get_n_pages ()
gint
gtk_assistant_get_n_pages (GtkAssistant *assistant); Возвращает количество страниц в assistant.
Параметры
assistant |
Возвращает
количество страниц в assistant.
С: 2.10
gtk_assistant_get_nth_page ()
GtkWidget * gtk_assistant_get_nth_page (GtkAssistant *assistant,gint page_num);
Возвращает дочерний виджет, содержащийся на странице с номером page_num.
Параметры
assistant | ||
page_num | индекс страницы в |
Возвращает
дочерний виджет или NULL, если page_num находится за пределами границ.
[nullable][transfer none]
С: 2.10
gtk_assistant_prepend_page ()
gint gtk_assistant_prepend_page (GtkAssistant *assistant,GtkWidget *page);
Добавляет страницу в начало assistant.
Параметры
assistant | ||
page |
Возвращает
индекс (начиная с 0) вставленной страницы
С: 2.10
gtk_assistant_append_page ()
gint gtk_assistant_append_page (GtkAssistant *assistant,GtkWidget *page);
Добавляет страницу в конец assistant.
Параметры
assistant | ||
page |
Возвращает
индекс (начиная с 0) вставленной страницы
С: 2.10
gtk_assistant_insert_page ()
gint gtk_assistant_insert_page (GtkAssistant *assistant,GtkWidget *page,gint position);
Вставляет страницу в assistant в заданной позиции.
Параметры
assistant | ||
page | ||
position | индекс (начиная с 0), в который необходимо вставить страницу, или -1 для добавления страницы в конец |
Возвращает
индекс (начиная с 0) вставленной страницы
С: 2.10
gtk_assistant_remove_page ()
void gtk_assistant_remove_page (GtkAssistant *assistant,gint page_num);
Удаляет страницу page_num из assistant.
Параметры
assistant | ||
page_num | индекс страницы в |
С: 3.2
GtkAssistantPageFunc ()
gint (*GtkAssistantPageFunc) (gint 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 | ||
page_func | функция GtkAssistantPageFunc, или | [allow-none] |
data | данные пользователя для | |
destroy | уведомление об уничтожении для |
Since: 2.10
gtk_assistant_set_page_type ()
void gtk_assistant_set_page_type (GtkAssistant *assistant,GtkWidget *page,GtkAssistantPageType type);
Устанавливает тип страницы для page .
Тип страницы определяет поведение страницы в assistant .
Параметры
assistant | ||
page | страница | |
type | новый тип для |
Since: 2.10
gtk_assistant_get_page_type ()
GtkAssistantPageType gtk_assistant_get_page_type (GtkAssistant *assistant,GtkWidget *page);
Получает тип страницы page .
Параметры
assistant | ||
page | страница |
Возвращает
тип страницы page
Since: 2.10
gtk_assistant_set_page_title ()
void gtk_assistant_set_page_title (GtkAssistant *assistant,GtkWidget *page,const gchar *title);
Устанавливает заголовок для page .
Заголовок отображается в области заголовка помощника, когда page является текущей страницей.
Параметры
assistant | ||
page | страница | |
title | новый заголовок для |
Since: 2.10
gtk_assistant_get_page_title ()
const gchar * gtk_assistant_get_page_title (GtkAssistant *assistant,GtkWidget *page);
Получает заголовок для page .
Параметры
assistant | ||
page | страница |
Возвращает
заголовок для page
Since: 2.10
gtk_assistant_set_page_header_image ()
void gtk_assistant_set_page_header_image (GtkAssistant *assistant,GtkWidget *page,GdkPixbuf *pixbuf);
gtk_assistant_set_page_header_image устарел с версии 3.2 и не должен использоваться в новом коде.
Начиная с GTK+ 3.2, заголовок больше не отображается; добавьте свою декорацию заголовка в содержимое страницы вместо этого.
Устанавливает изображение заголовка для page .
Параметры
assistant | ||
page | страница | |
pixbuf | новое изображение заголовка | [allow-none] |
Since: 2.10
gtk_assistant_get_page_header_image ()
GdkPixbuf * gtk_assistant_get_page_header_image (GtkAssistant *assistant,GtkWidget *page);
gtk_assistant_get_page_header_image устарел с версии 3.2 и не должен использоваться в новом коде.
Начиная с GTK+ 3.2, заголовок больше не отображается; добавьте свою декорацию заголовка в содержимое страницы вместо этого.
Получает изображение заголовка для page .
Параметры
assistant | ||
page | страница |
Возвращает
изображение заголовка для page , или NULL, если изображение заголовка для страницы отсутствует.
[transfer none]
Since: 2.10
gtk_assistant_set_page_side_image ()
void gtk_assistant_set_page_side_image (GtkAssistant *assistant,GtkWidget *page,GdkPixbuf *pixbuf);
gtk_assistant_set_page_side_image устарел с версии 3.2 и не должен использоваться в новом коде.
Начиная с GTK+ 3.2, изображения боковой панели больше не отображаются.
Устанавливает изображение боковой панели для page .
Это изображение раньше отображалось в боковой области помощника, когда page была текущей страницей.
Параметры
assistant | ||
page | страница | |
pixbuf | новое изображение боковой панели | [allow-none] |
Since: 2.10
gtk_assistant_get_page_side_image ()
GdkPixbuf * gtk_assistant_get_page_side_image (GtkAssistant *assistant,GtkWidget *page);
gtk_assistant_get_page_side_image устарело начиная с версии 3.2 и не должно использоваться в новом коде.
В GTK+ 3.2 изображения на боковой панели больше не отображаются.
Получает изображение на боковой панели для page .
Параметры
assistant | ||
page | страница |
Возвращает
изображение на боковой панели для page , или NULL, если изображение отсутствует.
[transfer none]
С: 2.10
gtk_assistant_set_page_complete ()
void gtk_assistant_set_page_complete (GtkAssistant *assistant,GtkWidget *page,gboolean complete);
Устанавливает, являются ли содержимое page завершёнными.
Это заставит assistant обновить состояние кнопок для продолжения задачи.
Параметры
assistant | ||
page | страница | |
complete | статус завершённости страницы |
С: 2.10
gtk_assistant_get_page_complete ()
gboolean gtk_assistant_get_page_complete (GtkAssistant *assistant,GtkWidget *page);
Получает, завершена ли page.
Параметры
assistant | ||
page | страница |
Возвращает
TRUE, если page завершена.
С: 2.10
gtk_assistant_set_page_has_padding ()
void gtk_assistant_set_page_has_padding (GtkAssistant *assistant,GtkWidget *page,gboolean has_padding);
Устанавливает, добавляет ли помощник отступы вокруг страницы.
Параметры
assistant | ||
page | страница | |
has_padding | имеет ли эта страница отступы |
С: 3.18
gtk_assistant_get_page_has_padding ()
gboolean gtk_assistant_get_page_has_padding (GtkAssistant *assistant,GtkWidget *page);
Получает, имеет ли страница отступы.
Параметры
assistant | ||
page | страница |
Возвращает
TRUE, если page имеет отступы
С: 3.18
gtk_assistant_add_action_widget ()
void gtk_assistant_add_action_widget (GtkAssistant *assistant,GtkWidget *child);
Добавляет виджет в область действий GtkAssistant.
Параметры
assistant | ||
child |
С: 2.10
gtk_assistant_remove_action_widget ()
void gtk_assistant_remove_action_widget (GtkAssistant *assistant,GtkWidget *child);
Удаляет виджет из области действий GtkAssistant.
Параметры
assistant | ||
child |
С: 2.10
gtk_assistant_update_buttons_state ()
void
gtk_assistant_update_buttons_state (GtkAssistant *assistant); Принудительно заставляет assistant пересчитать состояние кнопок.
GTK+ автоматически позаботится об этом в большинстве ситуаций, например, при переходе пользователя на другую страницу или при изменении видимости или завершённости страницы.
Одна ситуация, когда может потребоваться вызвать эту функцию, — это изменение значения на текущей странице, которое влияет на будущий поток страниц помощника.
Параметры
assistant |
С: 2.10
gtk_assistant_commit ()
void
gtk_assistant_commit (GtkAssistant *assistant); Очищает историю посещенных страниц, чтобы кнопка «Назад» не отображалась на текущей странице, а кнопка «Отмена» удалялась с последующих страниц.
Используйте эту функцию, когда информация, предоставленная до текущей страницы, считается постоянной и не может быть изменена или отменена. Например, отображения страницы прогресса для отслеживания длительной, необратимой операции после того, как пользователь нажал «Применить» на странице подтверждения.
Параметры
assistant |
С: 2.22
gtk_assistant_next_page ()
void
gtk_assistant_next_page (GtkAssistant *assistant); Переход к следующей странице.
Ошибка программирования — вызывать эту функцию, когда следующей страницы нет.
Эта функция предназначена для использования при создании страниц типа GTK_ASSISTANT_PAGE_CUSTOM.
Параметры
assistant |
С: 3.0
gtk_assistant_previous_page ()
void
gtk_assistant_previous_page (GtkAssistant *assistant); Переход к предыдущей посещённой странице.
Ошибка программирования — вызывать эту функцию, когда предыдущей страницы нет.
Эта функция предназначена для использования при создании страниц типа GTK_ASSISTANT_PAGE_CUSTOM.
Параметры
assistant |
С: 3.0
Типы и значения
Структура GtkAssistant
struct GtkAssistant;
Структура GtkAssistantClass
struct GtkAssistantClass {
GtkWindowClass parent_class;
void (* prepare) (GtkAssistant *assistant, GtkWidget *page);
void (* apply) (GtkAssistant *assistant);
void (* close) (GtkAssistant *assistant);
void (* cancel) (GtkAssistant *assistant);
};
Члены
| Сигнал, испускаемый, когда новая страница устанавливается в качестве текущей страницы помощника, прежде чем новая страница станет видимой. | |
| Сигнал, испускаемый при нажатии кнопки «Применить». | |
| Сигнал, испускаемый при нажатии кнопки «Закрыть» или кнопки «Применить» на последней странице. | |
| Сигнал, испускаемый при нажатии кнопки «Отмена». |
Перечисление 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 | Используется, когда другие типы страниц не подходят. Кнопки не будут отображаться, и приложение должно добавить свои собственные кнопки через |
Подробное описание свойств
Свойство “use-header-bar”
“use-header-bar” gint
TRUE, если помощник использует GtkHeaderBar для кнопок действий вместо области действий.
По техническим причинам это свойство объявлено как целочисленное свойство, но вы должны задать только значение TRUE или FALSE.
Флаги: Чтение/Запись/Только для создания
Допустимые значения: [-1,1]
Значение по умолчанию: -1
С: 3.12
Подробное описание свойств дочерних элементов
Свойство дочернего элемента “complete”
“complete” gboolean
Установление свойства "complete" дочернего элемента в TRUE помечает страницу как завершенную (т. е.: все необходимые поля заполнены). GTK+ использует эту информацию для управления чувствительностью кнопок навигации.
Флаги: Чтение/Запись
Значение по умолчанию: FALSE
С: 2.10
Свойство дочернего элемента “has-padding”
“has-padding” gboolean
Определяет, добавляет ли помощник отступы вокруг страницы.
Флаги: Чтение/Запись
Значение по умолчанию: TRUE
Свойство дочернего элемента “header-image”
“header-image” GdkPixbuf *
Этот образ отображался в заголовке страницы.
GtkAssistant:header-image устарел с версии 3.2 и не должен использоваться в новом коде.
С GTK+ 3.2 заголовок больше не отображается; добавьте декорацию заголовка в содержимое страницы вместо этого.
Флаги: Чтение/Запись
С: 2.10
Свойство дочернего элемента “page-type”
“page-type” GtkAssistantPageType
Тип страницы помощника.
Флаги: Чтение/Запись
Значение по умолчанию: GTK_ASSISTANT_PAGE_CONTENT
С: 2.10
Свойство дочернего элемента “sidebar-image”
“sidebar-image” GdkPixbuf *
Этот образ отображался в 'боковой панели'.
GtkAssistant:sidebar-image устарел с версии 3.2 и не должен использоваться в новом коде.
С GTK+ 3.2 изображение боковой панели больше не отображается.
Флаги: Чтение/Запись
С: 2.10
Свойство дочернего элемента “title”
“title” gchar *
Заголовок страницы.
Флаги: Чтение/Запись
Значение по умолчанию: NULL
С: 2.10
Подробное описание свойств стиля
Свойство стиля “content-padding”
“content-padding” gint
Количество пикселей вокруг содержимого.
GtkAssistant:content-padding устарел с версии 3.20 и не должен использоваться в новом коде.
Это свойство стиля игнорируется.
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 1
Свойство стиля “header-padding”
“header-padding” gint
Количество пикселей вокруг заголовка.
GtkAssistant:header-padding устарел с версии 3.20 и не должен использоваться в новом коде.
Это свойство стиля игнорируется.
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 6
Подробности сигналов
Сигнал “apply”
void user_function (GtkAssistant *assistant, gpointer user_data)
Сигнал ::apply генерируется при нажатии кнопки «Применить».
По умолчанию, GtkAssistant переключается на страницу, следующую за текущей, если текущая страница не является последней.
Обработчик сигнала ::apply должен выполнять действия, для которых мастер собрал данные. Если действие занимает много времени, можно добавить страницу типа GTK_ASSISTANT_PAGE_PROGRESS после страницы подтверждения и обработать операцию в сигнале “подготовка” страницы прогресса.
Параметры
assistant | the GtkAssistant | |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
Флаги: Run Last
С версии: 2.10
Сигнал “cancel”
void user_function (GtkAssistant *assistant, gpointer user_data)
Сигнал ::cancel генерируется при нажатии кнопки «Отмена».
Параметры
assistant | the GtkAssistant | |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
Флаги: Run Last
С версии: 2.10
Сигнал “close”
void user_function (GtkAssistant *assistant, gpointer user_data)
Сигнал ::close генерируется при нажатии кнопки закрытия на странице резюме или при нажатии кнопки «Применить» на последней странице типа GTK_ASSISTANT_PAGE_CONFIRM.
Параметры
assistant | the GtkAssistant | |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
Флаги: Run Last
С версии: 2.10
Сигнал “prepare”
void user_function (GtkAssistant *assistant, GtkWidget *page, gpointer user_data)
Сигнал ::prepare генерируется, когда новая страница устанавливается как текущая для помощника, перед отображением новой страницы.
Обработчик этого сигнала может выполнить все необходимые подготовительные действия перед отображением page .
Параметры
assistant | the GtkAssistant | |
page | текущая страница | |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
Флаги: Run Last
С версии: 2.10
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.20/GtkAssistant.html