Spec-Zone.ru › GTK 3.20

GtkAssistant

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

Функции

GtkWidget * gtk_assistant_new ()
gint gtk_assistant_get_current_page ()
void gtk_assistant_set_current_page ()
gint gtk_assistant_get_n_pages ()
GtkWidget * gtk_assistant_get_nth_page ()
gint gtk_assistant_prepend_page ()
gint gtk_assistant_append_page ()
gint gtk_assistant_insert_page ()
void gtk_assistant_remove_page ()
gint (*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 gchar * gtk_assistant_get_page_title ()
void gtk_assistant_set_page_header_image ()
GdkPixbuf * gtk_assistant_get_page_header_image ()
void gtk_assistant_set_page_side_image ()
GdkPixbuf * gtk_assistant_get_page_side_image ()
void gtk_assistant_set_page_complete ()
gboolean gtk_assistant_get_page_complete ()
void gtk_assistant_set_page_has_padding ()
gboolean gtk_assistant_get_page_has_padding ()
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 ()

Свойства

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

a GtkAssistant

Возвращает

Индекс (начиная с 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

a GtkAssistant

page_num

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

С: 2.10

gtk_assistant_get_n_pages ()

gint
gtk_assistant_get_n_pages (GtkAssistant *assistant);

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

Параметры

assistant

a GtkAssistant

Возвращает

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

С: 2.10

gtk_assistant_get_nth_page ()

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

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

Параметры

assistant

a GtkAssistant

page_num

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

Возвращает

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

[nullable][transfer none]

С: 2.10

gtk_assistant_prepend_page ()

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

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

Параметры

assistant

a GtkAssistant

page

a GtkWidget

Возвращает

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

С: 2.10

gtk_assistant_append_page ()

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

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

Параметры

assistant

a GtkAssistant

page

a GtkWidget

Возвращает

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

С: 2.10

gtk_assistant_insert_page ()

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

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

Параметры

assistant

a GtkAssistant

page

a GtkWidget

position

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

Возвращает

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

С: 2.10

gtk_assistant_remove_page ()

void
gtk_assistant_remove_page (GtkAssistant *assistant,
                           gint page_num);

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

Параметры

assistant

a GtkAssistant

page_num

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

С: 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

a GtkAssistant

page_func

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

[allow-none]

data

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

destroy

уведомление об уничтожении для data

Since: 2.10

gtk_assistant_set_page_type ()

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

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

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

Параметры

assistant

a GtkAssistant

page

страница assistant

type

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

Since: 2.10

gtk_assistant_get_page_type ()

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

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

Параметры

assistant

a GtkAssistant

page

страница assistant

Возвращает

тип страницы 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

a GtkAssistant

page

страница assistant

title

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

Since: 2.10

gtk_assistant_get_page_title ()

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

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

Параметры

assistant

a GtkAssistant

page

страница assistant

Возвращает

заголовок для 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

a GtkAssistant

page

страница assistant

pixbuf

новое изображение заголовка page .

[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

a GtkAssistant

page

страница assistant

Возвращает

изображение заголовка для 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

a GtkAssistant

page

страница assistant

pixbuf

новое изображение боковой панели page .

[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

a GtkAssistant

page

страница assistant

Возвращает

изображение на боковой панели для 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

a GtkAssistant

page

страница assistant

complete

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

С: 2.10

gtk_assistant_get_page_complete ()

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

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

Параметры

assistant

a GtkAssistant

page

страница assistant

Возвращает

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

a GtkAssistant

page

страница assistant

has_padding

имеет ли эта страница отступы

С: 3.18

gtk_assistant_get_page_has_padding ()

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

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

Параметры

assistant

a GtkAssistant

page

страница assistant

Возвращает

TRUE, если page имеет отступы

С: 3.18

gtk_assistant_add_action_widget ()

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

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

Параметры

assistant

a GtkAssistant

child

a GtkWidget

С: 2.10

gtk_assistant_remove_action_widget ()

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

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

Параметры

assistant

a GtkAssistant

child

a GtkWidget

С: 2.10

gtk_assistant_update_buttons_state ()

void
gtk_assistant_update_buttons_state (GtkAssistant *assistant);

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

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

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

Параметры

assistant

a GtkAssistant

С: 2.10

gtk_assistant_commit ()

void
gtk_assistant_commit (GtkAssistant *assistant);

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

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

Параметры

assistant

a GtkAssistant

С: 2.22

gtk_assistant_next_page ()

void
gtk_assistant_next_page (GtkAssistant *assistant);

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

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

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

Параметры

assistant

a GtkAssistant

С: 3.0

gtk_assistant_previous_page ()

void
gtk_assistant_previous_page (GtkAssistant *assistant);

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

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

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

Параметры

assistant

a GtkAssistant

С: 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);
};

Члены

prepare ()

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

apply ()

Сигнал, испускаемый при нажатии кнопки «Применить».

close ()

Сигнал, испускаемый при нажатии кнопки «Закрыть» или кнопки «Применить» на последней странице.

cancel ()

Сигнал, испускаемый при нажатии кнопки «Отмена».

Перечисление 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().

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

Свойство “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

Сигнал “escape”

void
user_function (GtkAssistant *assistant,
               gpointer      user_data)

Флаги: Action

Сигнал “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

Spec-Zone.ru

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