Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Implemented Interfaces  |  Properties  |  Style Properties  |  Signals

GtkEntry

GtkEntry Однострочное поле ввода текста

Краткое описание

#include <gtk/gtk.h> GtkEntry; GtkWidget* gtk_entry_new (void); GtkWidget* gtk_entry_new_with_max_length (gint max); void gtk_entry_set_text (GtkEntry *entry, const gchar *text); void gtk_entry_append_text (GtkEntry *entry, const gchar *text); void gtk_entry_prepend_text (GtkEntry *entry, const gchar *text); void gtk_entry_set_position (GtkEntry *entry, gint position); const gchar* gtk_entry_get_text (GtkEntry *entry); void gtk_entry_select_region (GtkEntry *entry, gint start, gint end); void gtk_entry_set_visibility (GtkEntry *entry, gboolean visible); void gtk_entry_set_invisible_char (GtkEntry *entry, gunichar ch); void gtk_entry_set_editable (GtkEntry *entry, gboolean editable); void gtk_entry_set_max_length (GtkEntry *entry, gint max); gboolean gtk_entry_get_activates_default (GtkEntry *entry); gboolean gtk_entry_get_has_frame (GtkEntry *entry); const GtkBorder* gtk_entry_get_inner_border (GtkEntry *entry); gint gtk_entry_get_width_chars (GtkEntry *entry); void gtk_entry_set_activates_default (GtkEntry *entry, gboolean setting); void gtk_entry_set_has_frame (GtkEntry *entry, gboolean setting); void gtk_entry_set_inner_border (GtkEntry *entry, const GtkBorder *border); void gtk_entry_set_width_chars (GtkEntry *entry, gint n_chars); gunichar gtk_entry_get_invisible_char (GtkEntry *entry); void gtk_entry_set_alignment (GtkEntry *entry, gfloat xalign); gfloat gtk_entry_get_alignment (GtkEntry *entry); PangoLayout* gtk_entry_get_layout (GtkEntry *entry); void gtk_entry_get_layout_offsets (GtkEntry *entry, gint *x, gint *y); gint gtk_entry_layout_index_to_text_index (GtkEntry *entry, gint layout_index); gint gtk_entry_text_index_to_layout_index (GtkEntry *entry, gint text_index); gint gtk_entry_get_max_length (GtkEntry *entry); gboolean gtk_entry_get_visibility (GtkEntry *entry); void gtk_entry_set_completion (GtkEntry *entry, GtkEntryCompletion *completion); GtkEntryCompletion* gtk_entry_get_completion (GtkEntry *entry);

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

GObject +----GInitiallyUnowned +----GtkObject +----GtkWidget +----GtkEntry +----GtkSpinButton

Осуществляемый интерфейс

GtkEntry осуществляет AtkImplementorIface, GtkCellEditable и GtkEditable.

Свойства

"activates-default" gboolean : Read / Write "cursor-position" gint : Read "editable" gboolean : Read / Write "has-frame" gboolean : Read / Write "inner-border" GtkBorder : Read / Write "invisible-char" guint : Read / Write "max-length" gint : Read / Write "scroll-offset" gint : Read "selection-bound" gint : Read "text" gchararray : Read / Write "truncate-multiline" gboolean : Read / Write "visibility" gboolean : Read / Write "width-chars" gint : Read / Write "xalign" gfloat : Read / Write

Свойства стиля

  "inner-border"         GtkBorder             : Read

Сигналы

"activate" void user_function (GtkEntry *entry, gpointer user_data) : Run last / Action "backspace" void user_function (GtkEntry *entry, gpointer user_data) : Run last / Action "copy-clipboard" void user_function (GtkEntry *entry, gpointer user_data) : Run last / Action "cut-clipboard" void user_function (GtkEntry *entry, gpointer user_data) : Run last / Action "delete-from-cursor" void user_function (GtkEntry *entry, GtkDeleteType *arg1, gint arg2, gpointer user_data) : Run last / Action "insert-at-cursor" void user_function (GtkEntry *entry, gchar *arg1, gpointer user_data) : Run last / Action "move-cursor" void user_function (GtkEntry *entry, GtkMovementStep *arg1, gint arg2, gboolean arg3, gpointer user_data) : Run last / Action "paste-clipboard" void user_function (GtkEntry *entry, gpointer user_data) : Run last / Action "populate-popup" void user_function (GtkEntry *entry, GtkMenu *arg1, gpointer user_data) : Run last "toggle-overwrite" void user_function (GtkEntry *entry, gpointer user_data) : Run last / Action

Описание

GtkEntry виджет одно-строчного ввода. По умолчанию поддерживается довольно большой набор привязок клавиш. Если вводимый текст больше поля ввода, виджет прокручивается так чтобы курсор находился в видимом положении.

Детали

GtkEntry

typedef struct _GtkEntry GtkEntry;

GtkEntry структура содержит только закрытые данные.


gtk_entry_new ()

GtkWidget*  gtk_entry_new                   (void);

Создаёт новое поле ввода.

Возвращает:

новый GtkEntry.


gtk_entry_new_with_max_length ()

GtkWidget*  gtk_entry_new_with_max_length   (gint max);

Внимание

gtk_entry_new_with_max_length устарела и не должна использоваться во вновь создаваемом коде.

Создаёт новый GtkEntry виджет с данным максимумом длины.

Помните: существование этой функции противоречит остальной части GTK+ API. Вместо этой функции нужно просто запросить пользователя создать дополнительный вызов gtk_entry_set_max_length(). В ближайшее время ожидается удаление этой функции.

max :

максимальная длина поля ввода, или 0 если нет максимума. (кроме максимальной длины вводов.) Помещаемое значение должно быть в диапазоне 0-65536.

Возвращает:

новый GtkEntry.


gtk_entry_set_text ()

void gtk_entry_set_text (GtkEntry *entry, const gchar *text);

Устанавливает текст в виджет перезаписывая существующий контекст.

entry :

GtkEntry.

text :

новый текст.


gtk_entry_append_text ()

void gtk_entry_append_text (GtkEntry *entry, const gchar *text);

Внимание

gtk_entry_append_text устарела и не должна использоваться во вновь создаваемом коде.

Добавляет текст к контексту виджета.

entry :

GtkEntry.

text :

Добавляемый текст.


gtk_entry_prepend_text ()

void gtk_entry_prepend_text (GtkEntry *entry, const gchar *text);

Внимание

gtk_entry_prepend_text устарела и не должна использоваться во вновь создаваемом коде.

Вставляет текст пред контекстом виджета.

entry :

GtkEntry.

text :

Вставляемый текст.


gtk_entry_set_position ()

void gtk_entry_set_position (GtkEntry *entry, gint position);

Внимание

gtk_entry_set_position устарела и не должна использоваться во вновь создаваемом коде.

Устанавливает курсор в указанную позицию ввода. Вместо этой функции используйте gtk_editable_set_position().

entry :

GtkEntry.

position :

Позиция курсора. Курсор отображается после символа в указанной позиции (начиная с 0) виджета. Позиция должна быть меньше или равна числу символов в виджете. Значение -1 указывает что позиция должна быть установлена после последнего символа в виджете. Помните, позиция указывается в символах а не байтах.


gtk_entry_get_text ()

const gchar* gtk_entry_get_text             (GtkEntry *entry);

Находит контекст ввода виджета. Смотрите также gtk_editable_get_chars().

entry :

GtkEntry

Возвращает:

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


gtk_entry_select_region ()

void gtk_entry_select_region (GtkEntry *entry, gint start, gint end);

Внимание

gtk_entry_select_region устарела и не должна использоваться во вновь создаваемом коде.

Выделяет область текста. Символы выделяются начиная с позиции start_pos, до позиции end_pos но не включают её. Если end_pos отрицательное число, то символы выделяются от позиции start_pos до конца текста. Это устаревшая функция, вместо неё нужно использовать gtk_editable_select_region().

entry :

GtkEntry.

start :

начальная позиция.

end :

Конечная позиция.


gtk_entry_set_visibility ()

void gtk_entry_set_visibility (GtkEntry *entry, gboolean visible);

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

По умолчанию скрывающий символ это звёздочка '*', но это можно изменить с помощью gtk_entry_set_invisible_char().

entry :

GtkEntry.

visible :

TRUE если контекст ввода отображается как открытый текст.


gtk_entry_set_invisible_char ()

void gtk_entry_set_invisible_char (GtkEntry *entry, gunichar ch);

Устанавливает символы для использования вместо актуального текста когда вызвана gtk_entry_set_visibility() для установки видимости текста в FALSE. Например когда эти символы используются в режиме "password mode" чтобы показать пользователю сколько символов было напечатано. По умолчанию скрывающий символ это звёздочка ('*'). Если вы установили невидимый символ в 0, то когда пользователь не получит обратной связи вообще; не будет вообще никакого текста когда он печатает.

entry :

GtkEntry

ch :

Символ Unicode


gtk_entry_set_editable ()

void gtk_entry_set_editable (GtkEntry *entry, gboolean editable);

Внимание

gtk_entry_set_editable устарела и не должна использоваться во вновь создаваемом коде.

Определяет может или нет пользователь изменять текст в редактируемом виджете. Это устаревшая функция, вместо неё используйте gtk_editable_set_editable().

entry :

GtkEntry.

editable :

TRUE если пользователю позволено редактировать текст в виджете.


gtk_entry_set_max_length ()

void gtk_entry_set_max_length (GtkEntry *entry, gint max);

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

entry :

GtkEntry.

max :

максимальная длина поля ввода, или 0 если нет максимума. (кроме максимальной длины вводов.) Помещаемое значение должно быть в диапазоне 0-65536.


gtk_entry_get_activates_default ()

gboolean    gtk_entry_get_activates_default (GtkEntry *entry);

Определяет значение установленное с помощью gtk_entry_set_activates_default().

entry :

GtkEntry

Возвращает:

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


gtk_entry_get_has_frame ()

gboolean    gtk_entry_get_has_frame         (GtkEntry *entry);

Определяет значение установленное с помощью gtk_entry_set_has_frame().

entry :

GtkEntry

Возвращает:

Имеет ли ввод скошенную рамку


gtk_entry_get_inner_border ()

const GtkBorder* gtk_entry_get_inner_border (GtkEntry *entry);

Эта функция возвращает свойство внутренней окантовки поля ввода. Смотрите gtk_entry_set_inner_border().

entry :

GtkEntry

Возвращает:

GtkBorder поля ввода, или NULL если не установлен.

Начиная с версии 2.10


gtk_entry_get_width_chars ()

gint        gtk_entry_get_width_chars       (GtkEntry *entry);

Определяет значение установленное с помощью gtk_entry_set_width_chars().

entry :

GtkEntry

Возвращает:

Число символов запрашиваемого пространства, или отрицательное число если не установлено


gtk_entry_set_activates_default ()

void gtk_entry_set_activates_default (GtkEntry *entry, gboolean setting);

Если setting равно TRUE, нажатие Enter в поле ввода entry будет активировать виджет по умолчанию окна содержащего поле ввода. Это обычно означает, что диалог содержащий поле ввода будет закрыт, так как обычно виджетом по умолчанию является одна из кнопок диалога.

(Для експертов: если setting равно TRUE, поле ввода вызывает gtk_window_activate_default() на окне содержащем поле ввода, в обработчике по умолчанию сигнала "activate".)

entry :

GtkEntry

setting :

TRUE для активизации оконного виджета по умолчанию при нажатии клавиши Enter


gtk_entry_set_has_frame ()

void gtk_entry_set_has_frame (GtkEntry *entry, gboolean setting);

Устанавливает скошенную рамку вокруг поля ввода.

entry :

GtkEntry

setting :

Новое значение


gtk_entry_set_inner_border ()

void gtk_entry_set_inner_border (GtkEntry *entry, const GtkBorder *border);

Устанавливает свойство внутренней окантовки entry's в значение border, или очищает его если помещено NULL. Внутренняя окантовка это область вокруг текста ввода, но внутри рамки.

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

entry :

GtkEntry

border :

GtkBorder, или NULL

Начиная с версии 2.10


gtk_entry_set_width_chars ()

void gtk_entry_set_width_chars (GtkEntry *entry, gint n_chars);

Изменяет запрашиваемый размер поля ввода на размер n_chars символов. Помните это изменит запрашиваемый размер, размер всё еще будет зависеть от вашего виджета упакованного в контейнер. Если n_chars равно -1, размер вернётся к размеру по умолчанию поля ввода.

entry :

GtkEntry

n_chars :

Ширина в символах


gtk_entry_get_invisible_char ()

gunichar    gtk_entry_get_invisible_char    (GtkEntry *entry);

Определяет символ используемый вместо реальных символов для поля ввода с установленным свойством видимости в FALSE. Смотрите gtk_entry_set_invisible_char().

entry :

GtkEntry

Возвращает:

Текущий скрывающий символ, или 0, если поле ввода вообще не должно отображать символы.


gtk_entry_set_alignment ()

void gtk_entry_set_alignment (GtkEntry *entry, gfloat xalign);

Устанавливает выравнивание для контекста поля ввода. Это контролирует горизонтальное позиционирование контекста когда отображаемый текст короче ширины поля ввода.

entry :

GtkEntry

xalign :

Горизонтальное выравнивание, от 0 (лево) до 1 (право). Обратно для выравнивания языков обратной направленности(RTL).

Начиная с версии 2.4


gtk_entry_get_alignment ()

gfloat      gtk_entry_get_alignment         (GtkEntry *entry);

Получает значение установленное gtk_entry_set_alignment().

entry :

GtkEntry

Возвращает:

выравнивание

Начиная с версии 2.4


gtk_entry_get_layout ()

PangoLayout* gtk_entry_get_layout           (GtkEntry *entry);

Получает PangoLayout используемое для отображения ввода. Выравнивание полезно например для конвертации позиции текста в пиксельную позицию, в комбинации с gtk_entry_get_layout_offsets(). Возвращаемым выравниванием владеет поле ввода и оно не должно освобождаться или модифицироваться вызывающим.

Имейте ввиду что выравнивание может содержать пред редактируемую строку, поэтому gtk_entry_layout_index_to_text_index() и gtk_entry_text_index_to_layout_index() нужны для конвертации индексных байтов в выравнивании в индексные байты содержимого поля ввода.

entry :

GtkEntry

Возвращает:

PangoLayout для этого ввода


gtk_entry_get_layout_offsets ()

void gtk_entry_get_layout_offsets (GtkEntry *entry, gint *x, gint *y);

Определяет позицию PangoLayout используемую для текста ввода, в координатах виджета. Полезно если вам нужно поднять линию текста в поле ввода с некоторым другим текстом, например когда используется поле ввода для внедрённых редактируемых ячеек в полотне виджета.

Также полезно для конвертации событий мыши в координаты внутри PangoLayout, например для выполнения некоторого действия, если некоторая часть поля ввода с текстом нажата.

Помните, это изменит также пользовательское прокручивание в поле ввода и смещение; вам нужно подключить сигнал "notify::scroll-offset" чтобы проконтролировать это. Помните когда используются функции PangoLayout вам нужно конвертировать из и в пикселы используя PANGO_PIXELS() или PANGO_SCALE.

Имейте ввиду что выравнивание текста может содержать пред редактируемую строку, поэтому gtk_entry_layout_index_to_text_index() и gtk_entry_text_index_to_layout_index() нужны для конвертации индексных байтов в выравнивании в индексные байты содержимого поля ввода.

entry :

GtkEntry

x :

X смещение выравнивания, или NULL

y :

Y смещение выравнивания, или NULL


gtk_entry_layout_index_to_text_index ()

gint gtk_entry_layout_index_to_text_index (GtkEntry *entry, gint layout_index);

Конвертирует из позиции в контексте ввода (возвращаемой gtk_entry_get_text()) в позицию ввода PangoLayout (возвращаемой gtk_entry_get_layout(), с текстом полученным через pango_layout_get_text()).

entry :

GtkEntry

layout_index :

Байтовый указатель внутри выравненного текста ввода

Возвращает:

Байтовый указатель внутри контекста ввода


gtk_entry_text_index_to_layout_index ()

gint gtk_entry_text_index_to_layout_index (GtkEntry *entry, gint text_index);

Конвертирует из позиции ввода PangoLayout (возвращаемой gtk_entry_get_layout()) в позицию контекста ввода (возвращаемой gtk_entry_get_text()).

entry :

GtkEntry

text_index :

Байтовый указатель внутри контекста ввода

Возвращает:

Байтовый указатель внутри выравненного текста ввода


gtk_entry_get_max_length ()

gint        gtk_entry_get_max_length        (GtkEntry *entry);

Находит допустимый максимум длины текста в entry. Смотрите gtk_entry_set_max_length().

entry :

GtkEntry

Возвращает:

Максимально допустимое число символов в GtkEntry, или 0 если нет максимума.


gtk_entry_get_visibility ()

gboolean    gtk_entry_get_visibility        (GtkEntry *entry);

Определяет видим ли текст в entry. Смотрите gtk_entry_set_visibility().

entry :

GtkEntry

Возвращает:

TRUE если текущий текст видим


gtk_entry_set_completion ()

void gtk_entry_set_completion (GtkEntry *entry, GtkEntryCompletion *completion);

Устанавливает completion для использования в качестве вспомогательного объекта завершения в entry. Вся дальнейшая конфигурация механизма завершения выполняется с completion используя GtkEntryCompletion API. Завершение отключено если completion установлен в NULL.

entry :

GtkEntry.

completion :

GtkEntryCompletion или NULL.

Начиная с версии 2.4


gtk_entry_get_completion ()

GtkEntryCompletion* gtk_entry_get_completion (GtkEntry *entry);

Находит текущий вспомогательный объект завершения используемый entry.

entry :

GtkEntry.

Возвращает:

Текущий вспомогательный объект завершения используемый entry.

Начиная с версии 2.4

Детали свойств

Свойство "activates-default"

  "activates-default"    gboolean              : Read / Write

Должен ли активизироваться виджет по умолчанию при нажатии клавиши Enter (например кнопка диалога по умолчанию).

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


Свойство "cursor-position"

  "cursor-position"      gint                  : Read

Текущая позиция вставки курсора в символах.

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

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


Свойство "editable"

  "editable"             gboolean              : Read / Write

Должен ли контекст ввода быть редактируемым.

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


Свойство "has-frame"

  "has-frame"            gboolean              : Read / Write

FALSE удаляет внешние скосы поля ввода.

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


Свойство "inner-border"

  "inner-border"         GtkBorder             : Read / Write

Устанавливает окантовку между текстом и рамкой

Начиная с версии 2.10


Свойство "invisible-char"

  "invisible-char"       guint                 : Read / Write

Символ используемый для маскировки содержимого ввода (в режиме "password mode").

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


Свойство "max-length"

  "max-length"           gint                  : Read / Write

Максимальное число символов для данного ввода. Ноль если нет максимума.

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

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


Свойство "scroll-offset"

  "scroll-offset"        gint                  : Read

Число пикселей ввода прокрученных слева от экрана.

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

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


Свойство "selection-bound"

  "selection-bound"      gint                  : Read

Позиция конца выделения противоположная позиции курсора, в символах.

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

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


Свойство "text"

  "text"                 gchararray            : Read / Write

Содержимое поля ввода.

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


Свойство "truncate-multiline"

  "truncate-multiline"   gboolean              : Read / Write

Если TRUE, помещаемый много-строковый текст урезается до первой строки.

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

Начиная с версии 2.10


Свойство "visibility"

  "visibility"           gboolean              : Read / Write

FALSE отображает "invisible char" вместо реального текста (парольный режим).

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


Свойство "width-chars"

  "width-chars"          gint                  : Read / Write

Число символов для интервала во вводе.

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

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


Свойство "xalign"

  "xalign"               gfloat                : Read / Write

Горизонтальное выравнивание, от 0 (лево) до 1 (право). Обратно для выравнивания RTL.

Создаёт новый GtkEntry виджет.

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

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

Начиная с версии 2.4

Детали свойств стиля

Свойство стиля "inner-border"

  "inner-border"         GtkBorder             : Read

Устанавливает окантовку между текстом и рамкой.

Начиная с версии 2.10

Детали сигналов

Сигнал "activate"

void user_function (GtkEntry *entry, gpointer user_data) : Run last / Action

entry :

объект получающий сигнал.

user_data :

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


Сигнал "backspace"

void user_function (GtkEntry *entry, gpointer user_data) : Run last / Action

entry :

объект получающий сигнал.

user_data :

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


Сигнал "copy-clipboard"

void user_function (GtkEntry *entry, gpointer user_data) : Run last / Action

entry :

объект получающий сигнал.

user_data :

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


Сигнал "cut-clipboard"

void user_function (GtkEntry *entry, gpointer user_data) : Run last / Action

entry :

объект получающий сигнал.

user_data :

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


Сигнал "delete-from-cursor"

void user_function (GtkEntry *entry, GtkDeleteType *arg1, gint arg2, gpointer user_data) : Run last / Action

entry :

объект получающий сигнал.

arg1 :

arg2 :

user_data :

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


Сигнал "insert-at-cursor"

void user_function (GtkEntry *entry, gchar *arg1, gpointer user_data) : Run last / Action

entry :

объект получающий сигнал.

arg1 :

user_data :

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


Сигнал "move-cursor"

void user_function (GtkEntry *entry, GtkMovementStep *arg1, gint arg2, gboolean arg3, gpointer user_data) : Run last / Action

entry :

объект получающий сигнал.

arg1 :

arg2 :

arg3 :

user_data :

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


Сигнал "paste-clipboard"

void user_function (GtkEntry *entry, gpointer user_data) : Run last / Action

entry :

объект получающий сигнал.

user_data :

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


Сигнал "populate-popup"

void user_function (GtkEntry *entry, GtkMenu *arg1, gpointer user_data) : Run last

entry :

объект получающий сигнал.

arg1 :

user_data :

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


Сигнал "toggle-overwrite"

void user_function (GtkEntry *entry, gpointer user_data) : Run last / Action

entry :

объект получающий сигнал.

user_data :

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

Смотрите также

GtkTextView

a widget for handling multi-line text entry.