Spec-Zone.ru › GTK 4.0

GtkEntryCompletion

GtkEntryCompletion — Функциональность автодополнения для GtkEntry

Функции

gboolean (*GtkEntryCompletionMatchFunc) ()
GtkEntryCompletion * gtk_entry_completion_new ()
GtkEntryCompletion * gtk_entry_completion_new_with_area ()
GtkWidget * gtk_entry_completion_get_entry ()
void gtk_entry_completion_set_model ()
GtkTreeModel * gtk_entry_completion_get_model ()
void gtk_entry_completion_set_match_func ()
void gtk_entry_completion_set_minimum_key_length ()
int gtk_entry_completion_get_minimum_key_length ()
char * gtk_entry_completion_compute_prefix ()
void gtk_entry_completion_complete ()
const char * gtk_entry_completion_get_completion_prefix ()
void gtk_entry_completion_insert_prefix ()
void gtk_entry_completion_set_text_column ()
int gtk_entry_completion_get_text_column ()
void gtk_entry_completion_set_inline_completion ()
gboolean gtk_entry_completion_get_inline_completion ()
void gtk_entry_completion_set_inline_selection ()
gboolean gtk_entry_completion_get_inline_selection ()
void gtk_entry_completion_set_popup_completion ()
gboolean gtk_entry_completion_get_popup_completion ()
void gtk_entry_completion_set_popup_set_width ()
gboolean gtk_entry_completion_get_popup_set_width ()
void gtk_entry_completion_set_popup_single_match ()
gboolean gtk_entry_completion_get_popup_single_match ()

Свойства

GtkCellArea * cell-area Чтение / Запись / Только для создания
gboolean inline-completion Чтение / Запись
gboolean inline-selection Чтение / Запись
int minimum-key-length Чтение / Запись
GtkTreeModel * model Чтение / Запись
gboolean popup-completion Чтение / Запись
gboolean popup-set-width Чтение / Запись
gboolean popup-single-match Чтение / Запись
int text-column Чтение / Запись

Сигналы

gboolean cursor-on-match Выполнить последним
gboolean insert-prefix Выполнить последним
gboolean match-selected Выполнить последним
void no-matches Выполнить последним

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

GtkEntryCompletion

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

    GObject
    ╰── GtkEntryCompletion

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

GtkEntryCompletion реализует GtkCellLayout и GtkBuildable.

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

#include <gtk/gtk.h>

Описание

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

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

При выборе элемента автозаполнения содержимое поля ввода обновляется. По умолчанию содержимое поля ввода заменяется текстовым столбцом модели, но это можно переопределить, подключившись к сигналу «match-selected» и обновив поле ввода в обработчике сигнала. Обратите внимание, что вы должны вернуть TRUE из обработчика сигнала, чтобы подавить стандартное поведение.

Для добавления функциональности автозаполнения в поле ввода используйте gtk_entry_set_completion().

GtkEntryCompletion использует модель GtkTreeModelFilter для представления подмножества всей модели, которое в настоящее время соответствует условиям. В то время как сигналы GtkEntryCompletion «match-selected» и «cursor-on-match» принимают исходную модель и итератор, указывающий на эту модель, в качестве аргументов, другие обратные вызовы и сигналы (например, GtkCellLayoutDataFuncs или «apply-attributes») обычно принимают фильтрованную модель в качестве аргумента. До тех пор, пока вы только вызываете gtk_tree_model_get(), это не повлияет на вас. Если по какой-либо причине вам нужна исходная модель, используйте gtk_tree_model_filter_get_model(). Не забудьте использовать gtk_tree_model_filter_convert_iter_to_child_iter() для получения соответствующего итератора.

Функции

GtkEntryCompletionMatchFunc ()

gboolean
(*GtkEntryCompletionMatchFunc) (GtkEntryCompletion *completion,
                                const char *key,
                                GtkTreeIter *iter,
                                gpointer user_data);

Функция, определяющая, соответствует ли строка, указанная в iter, заданному key и должна ли отображаться как возможный вариант дополнения для key. Обратите внимание, что key нормализована и приведена к нижнему регистру (см. g_utf8_normalize() и g_utf8_casefold()). Если это не подходит, функции сопоставления имеют доступ к исходному ключу через gtk_editable_get_text (GTK_EDITABLE (gtk_entry_completion_get_entry())).

Параметры

completion

объект GtkEntryCompletion

key

строка для сопоставления, нормализованная и приведённая к нижнему регистру

iter

объект GtkTreeIter, указывающий на строку для сопоставления

user_data

пользовательские данные, заданные в gtk_entry_completion_set_match_func()

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

TRUE, если iter следует отобразить как возможный вариант дополнения для key

gtk_entry_completion_new ()

GtkEntryCompletion *
gtk_entry_completion_new (void);

Создаёт новый объект GtkEntryCompletion.

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

Новый созданный объект GtkEntryCompletion

gtk_entry_completion_new_with_area ()

GtkEntryCompletion *
gtk_entry_completion_new_with_area (GtkCellArea *area);

Создаёт новый объект GtkEntryCompletion используя указанную area для вывода ячеек в базовом GtkTreeViewColumn выпадающего меню.

Параметры

area

объект GtkCellArea, используемый для вывода ячеек

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

Новый созданный объект GtkEntryCompletion

gtk_entry_completion_get_entry ()

GtkWidget *
gtk_entry_completion_get_entry (GtkEntryCompletion *completion);

Возвращает поле ввода, к которому был прикреплён completion.

Параметры

completion

объект GtkEntryCompletion

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

Поле ввода, к которому был прикреплён completion.

[transfer none]

gtk_entry_completion_set_model ()

void
gtk_entry_completion_set_model (GtkEntryCompletion *completion,
                                GtkTreeModel *model);

Устанавливает модель для GtkEntryCompletion. Если у completion уже установлена модель, она будет удалена перед установкой новой. Если модель NULL, то модель будет удалена.

Параметры

completion

объект GtkEntryCompletion

model

объект GtkTreeModel.

[allow-none]

gtk_entry_completion_get_model ()

GtkTreeModel *
gtk_entry_completion_get_model (GtkEntryCompletion *completion);

Возвращает модель, используемую GtkEntryCompletion в качестве источника данных. Возвращает NULL, если модель не установлена.

Параметры

completion

объект GtkEntryCompletion

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

Объект GtkTreeModel, или NULL если ни одна не используется в данный момент.

[nullable][transfer none]

gtk_entry_completion_set_match_func ()

void
gtk_entry_completion_set_match_func (GtkEntryCompletion *completion,
                                     GtkEntryCompletionMatchFunc func,
                                     gpointer func_data,
                                     GDestroyNotify func_notify);

Устанавливает функцию сопоставления для completion на func. Функция сопоставления используется для определения, должна ли строка быть в списке дополнений.

Параметры

completion

объект GtkEntryCompletion

func

функция GtkEntryCompletionMatchFunc для использования

func_data

пользовательские данные для func

func_notify

уведомление о удалении для func_data.

gtk_entry_completion_set_minimum_key_length ()

void
gtk_entry_completion_set_minimum_key_length
                               (GtkEntryCompletion *completion,
                                int length);

Требует длины ключа поиска для completion быть не менее length. Это полезно для длинных списков, где завершение с коротким ключом занимает много времени и даст бессмысленные результаты (т.е., слишком большой набор данных).

Параметры

completion

объект GtkEntryCompletion

length

минимальная длина ключа для начала завершения

gtk_entry_completion_get_minimum_key_length ()

int
gtk_entry_completion_get_minimum_key_length
                               (GtkEntryCompletion *completion);

Возвращает минимальную длину ключа, установленную для completion.

Параметры

completion

объект GtkEntryCompletion

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

Текущая минимальная длина ключа

gtk_entry_completion_compute_prefix ()

char *
gtk_entry_completion_compute_prefix (GtkEntryCompletion *completion,
                                     const char *key);

Вычисляет общий префикс, который является общим для всех строк в completion, начинающихся с key. Если ни одна строка не соответствует key, будет возвращено NULL. Обратите внимание, что для работы этой функции необходимо установить текстовый столбец, см. gtk_entry_completion_set_text_column() для получения подробной информации.

Параметры

completion

автодополнение entry

key

Текст для автодополнения

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

Общий префикс всех строк, начинающихся с key или NULL если ни одна строка не соответствует key.

[nullable][transfer full]

gtk_entry_completion_complete ()

void
gtk_entry_completion_complete (GtkEntryCompletion *completion);

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

Параметры

completion

a GtkEntryCompletion

gtk_entry_completion_get_completion_prefix ()

const char *
gtk_entry_completion_get_completion_prefix
                               (GtkEntryCompletion *completion);

Получает исходный текст, введенный пользователем, который запустил автодополнение, или NULL если автодополнение не выполняется.

Параметры

completion

a GtkEntryCompletion

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

префикс для текущего автодополнения.

[nullable]

gtk_entry_completion_insert_prefix ()

void
gtk_entry_completion_insert_prefix (GtkEntryCompletion *completion);

Запрашивает вставку префикса.

Параметры

completion

a GtkEntryCompletion

gtk_entry_completion_set_text_column ()

void
gtk_entry_completion_set_text_column (GtkEntryCompletion *completion,
                                      int column);

Вспомогательная функция для настройки наиболее часто используемого случая этого кода: список автодополнения только со строками. Эта функция настроит completion для отображения всех (и только) строк в списке автодополнения и получения этих строк из column в модели completion.

Эта функция создает и добавляет GtkCellRendererText для выбранного столбца. Если вам нужно установить текстовый столбец, но не нужен рендерер ячеек, используйте g_object_set() для установки свойства “text-column” напрямую.

Параметры

completion

a GtkEntryCompletion

column

столбец в модели completion для получения строк

gtk_entry_completion_get_text_column ()

int
gtk_entry_completion_get_text_column (GtkEntryCompletion *completion);

Возвращает столбец в модели completion для получения строк.

Параметры

completion

a GtkEntryCompletion

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

столбец, содержащий строки

gtk_entry_completion_set_inline_completion ()

void
gtk_entry_completion_set_inline_completion
                               (GtkEntryCompletion *completion,
                                gboolean inline_completion);

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

Параметры

completion

a GtkEntryCompletion

inline_completion

TRUE для выполнения встроенного автодополнения

gtk_entry_completion_get_inline_completion ()

gboolean
gtk_entry_completion_get_inline_completion
                               (GtkEntryCompletion *completion);

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

Параметры

completion

a GtkEntryCompletion

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

TRUE если включено встроенное автодополнение

gtk_entry_completion_set_inline_selection ()

void
gtk_entry_completion_set_inline_selection
                               (GtkEntryCompletion *completion,
                                gboolean inline_selection);

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

Параметры

completion

a GtkEntryCompletion

inline_selection

TRUE для выполнения встроенного выбора

gtk_entry_completion_get_inline_selection ()

gboolean
gtk_entry_completion_get_inline_selection
                               (GtkEntryCompletion *completion);

Возвращает TRUE если режим встроенного выбора включен.

Параметры

completion

a GtkEntryCompletion

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

TRUE если режим встроенного выбора включен

gtk_entry_completion_set_popup_completion ()

void
gtk_entry_completion_set_popup_completion
                               (GtkEntryCompletion *completion,
                                gboolean popup_completion);

Устанавливает, следует ли представлять варианты автодополнения во всплывающем окне.

Параметры

completion

a GtkEntryCompletion

popup_completion

TRUE для выполнения автодополнения во всплывающем окне

gtk_entry_completion_get_popup_completion ()

gboolean
gtk_entry_completion_get_popup_completion
                               (GtkEntryCompletion *completion);

Возвращает, следует ли представлять варианты автодополнения во всплывающем окне.

Параметры

completion

a GtkEntryCompletion

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

TRUE если включено автодополнение во всплывающем окне

gtk_entry_completion_set_popup_set_width ()

void
gtk_entry_completion_set_popup_set_width
                               (GtkEntryCompletion *completion,
                                gboolean popup_set_width);

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

Параметры

completion

a GtkEntryCompletion

popup_set_width

TRUE чтобы сделать ширину всплывающего окна такой же, как у поля ввода

gtk_entry_completion_get_popup_set_width ()

gboolean
gtk_entry_completion_get_popup_set_width
                               (GtkEntryCompletion *completion);

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

Параметры

completion

a GtkEntryCompletion

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

TRUE если окно всплывающего списка будет изменять размер на ширину поля ввода

gtk_entry_completion_set_popup_single_match ()

void
gtk_entry_completion_set_popup_single_match
                               (GtkEntryCompletion *completion,
                                gboolean popup_single_match);

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

Параметры

completion

a GtkEntryCompletion

popup_single_match

TRUE если всплывающее окно должно появляться даже при единственном совпадении

gtk_entry_completion_get_popup_single_match ()

gboolean
gtk_entry_completion_get_popup_single_match
                               (GtkEntryCompletion *completion);

Возвращает, будет ли всплывающее окно завершений появляться даже если есть только один совпадающий результат.

Параметры

completion

a GtkEntryCompletion

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

TRUE если окно всплывающего списка будет отображаться независимо от количества совпадений

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

GtkEntryCompletion

typedef struct _GtkEntryCompletion GtkEntryCompletion;

Подробности свойств

Свойство “cell-area”

  “cell-area”                GtkCellArea *

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

Если при создании завершения поля ввода с помощью gtk_entry_completion_new_with_area() не указана область, будет использоваться горизонтальная GtkCellAreaBox.

Владелец: GtkEntryCompletion

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

Свойство “inline-completion”

  “inline-completion”        gboolean

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

Владелец: GtkEntryCompletion

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

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

Свойство “inline-selection”

  “inline-selection”         gboolean

Определяет, будут ли возможные завершения в всплывающем списке отображаться в поле ввода при перемещении по ним.

Владелец: GtkEntryCompletion

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

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

Свойство “minimum-key-length”

  “minimum-key-length”       int

Минимальная длина ключа поиска для поиска совпадений.

Владелец: GtkEntryCompletion

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

Допустимые значения: >= 0

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

Свойство “model”

  “model”                    GtkTreeModel *

Модель для поиска совпадений.

Владелец: GtkEntryCompletion

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

Свойство “popup-completion”

  “popup-completion”         gboolean

Определяет, должны ли возможные завершения отображаться во всплывающем окне.

Владелец: GtkEntryCompletion

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

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

Свойство “popup-set-width”

  “popup-set-width”          gboolean

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

Владелец: GtkEntryCompletion

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

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

Свойство “popup-single-match”

  “popup-single-match”       gboolean

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

Владелец: GtkEntryCompletion

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

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

Свойство “text-column”

  “text-column”              int

Столбец модели, содержащий строки. Обратите внимание, что строки должны быть в формате UTF-8.

Владелец: GtkEntryCompletion

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

Допустимые значения: >= -1

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

Подробные сведения о сигналах

Сигнал “cursor-on-match”

gboolean
user_function (GtkEntryCompletion *widget,
               GtkTreeModel       *model,
               GtkTreeIter        *iter,
               gpointer            user_data)

Выдается, когда совпадение из курсора находится на совпадении в списке. По умолчанию содержимое поля ввода заменяется содержимым текстовой колонки в строке, на которую указывает iter.

Обратите внимание, что model — это модель, которая была передана в gtk_entry_completion_set_model().

Параметры

widget

объект, получивший сигнал

model

GtkTreeModel, содержащий совпадения

iter

GtkTreeIter, установленный на выбранное совпадение

user_data

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

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

TRUE , если сигнал был обработан

Флаги: Run Last

Сигнал “insert-prefix”

gboolean
user_function (GtkEntryCompletion *widget,
               char               *prefix,
               gpointer            user_data)

Выдается при срабатывании автодополнения в строке. По умолчанию отображается весь префикс, а новая вставленная часть выделяется.

Приложения могут подключиться к этому сигналу, чтобы вставить в поле ввода только часть prefix — например, поле ввода в GtkFileChooser вставляет только часть префикса до следующего '/'.

Параметры

widget

объект, получивший сигнал

prefix

общий префикс всех возможных дополнений

user_data

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

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

TRUE , если сигнал был обработан

Флаги: Run Last

Сигнал “match-selected”

gboolean
user_function (GtkEntryCompletion *widget,
               GtkTreeModel       *model,
               GtkTreeIter        *iter,
               gpointer            user_data)

Выдается при выборе совпадения из списка. По умолчанию содержимое поля ввода заменяется содержимым текстовой колонки в строке, на которую указывает iter.

Обратите внимание, что model — это модель, которая была передана в gtk_entry_completion_set_model().

Параметры

widget

объект, получивший сигнал

model

GtkTreeModel, содержащий совпадения

iter

GtkTreeIter, установленный на выбранное совпадение

user_data

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

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

TRUE , если сигнал был обработан

Флаги: Run Last

Сигнал “no-matches”

void
user_function (GtkEntryCompletion *widget,
               gpointer            user_data)

Выдается, когда модель фильтрации имеет ноль строк в методе completion_complete. (Другими словами, когда GtkEntryCompletion не имеет предложений)

Параметры

widget

объект, получивший сигнал

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/GtkEntryCompletion.html

Spec-Zone.ru

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