GTK+ Reference Manual |
||||
---|---|---|---|---|
Top | Description | Object Hierarchy | Implemented Interfaces | Properties | Style Properties | Signals |
GtkEntryGtkEntry Однострочное поле ввода текста |
#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. |
GtkWidget* gtk_entry_new_with_max_length (gint max);Внимание
gtk_entry_new_with_max_length
устарела и не должна использоваться во вновь создаваемом коде.Создаёт новый GtkEntry виджет с данным максимумом длины.
Помните: существование этой функции противоречит остальной части GTK+ API. Вместо этой функции нужно просто запросить пользователя создать дополнительный вызов
gtk_entry_set_max_length()
. В ближайшее время ожидается удаление этой функции.
|
максимальная длина поля ввода, или 0 если нет максимума. (кроме максимальной длины вводов.) Помещаемое значение должно быть в диапазоне 0-65536. |
Возвращает: |
новый GtkEntry. |
void gtk_entry_set_text (GtkEntry *entry,
const gchar *text);
Устанавливает текст в виджет перезаписывая существующий контекст.
|
|
|
новый текст. |
void gtk_entry_append_text (GtkEntry *entry,
const gchar *text);
gtk_entry_append_text
устарела и не должна использоваться во
вновь создаваемом коде.
Добавляет текст к контексту виджета.
|
|
|
Добавляемый текст. |
void gtk_entry_prepend_text (GtkEntry *entry,
const gchar *text);
gtk_entry_prepend_text
устарела и не должна использоваться во
вновь создаваемом коде.
Вставляет текст пред контекстом виджета.
|
|
|
Вставляемый текст. |
void gtk_entry_set_position (GtkEntry *entry,
gint position);
gtk_entry_set_position
устарела и не должна использоваться во
вновь создаваемом коде.
Устанавливает курсор в указанную
позицию ввода. Вместо этой функции
используйте gtk_editable_set_position()
.
|
|
|
Позиция курсора. Курсор отображается после символа в указанной позиции (начиная с 0) виджета. Позиция должна быть меньше или равна числу символов в виджете. Значение -1 указывает что позиция должна быть установлена после последнего символа в виджете. Помните, позиция указывается в символах а не байтах. |
const gchar* gtk_entry_get_text (GtkEntry *entry);Находит контекст ввода виджета. Смотрите также
gtk_editable_get_chars()
.
|
|
Возвращает: |
Указатель на контекст виджета как на строку. Указатель строки находится внутри виджета и не должен освобождаться, модифицироваться или сохраняться. |
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()
.
|
|
|
начальная позиция. |
|
Конечная позиция. |
void gtk_entry_set_visibility (GtkEntry *entry,
gboolean visible);
Устанавливает видим ли контекст поля
ввода или нет. Когда видимость установлена
в FALSE
,
символы отображаются как скрытые и
также будут появляться скопированными
в другое место.
По умолчанию скрывающий символ это
звёздочка '*', но это можно изменить с
помощью gtk_entry_set_invisible_char()
.
|
|
|
|
void gtk_entry_set_invisible_char (GtkEntry *entry,
gunichar ch);
Устанавливает символы для использования
вместо актуального текста когда вызвана
gtk_entry_set_visibility()
для установки видимости текста в FALSE
.
Например когда эти символы используются
в режиме "password mode" чтобы показать
пользователю сколько символов было
напечатано. По умолчанию скрывающий
символ это звёздочка ('*'). Если вы
установили невидимый символ в 0, то когда
пользователь не получит обратной связи
вообще; не будет вообще никакого текста
когда он печатает.
|
|
|
Символ Unicode |
void gtk_entry_set_editable (GtkEntry *entry,
gboolean editable);
gtk_entry_set_editable
устарела и не должна использоваться во
вновь создаваемом коде.
Определяет может или нет пользователь
изменять текст в редактируемом виджете.
Это устаревшая функция, вместо неё
используйте gtk_editable_set_editable()
.
|
|
|
|
void gtk_entry_set_max_length (GtkEntry *entry,
gint max);
Устанавливает максимум допустимой длины контекста виджета. Если текущий контекст больше полученной длины, то он соответственно усекается.
|
|
|
максимальная длина поля ввода, или 0 если нет максимума. (кроме максимальной длины вводов.) Помещаемое значение должно быть в диапазоне 0-65536. |
gboolean gtk_entry_get_activates_default (GtkEntry *entry);Определяет значение установленное с помощью
gtk_entry_set_activates_default()
.
|
|
Возвращает: |
|
gboolean gtk_entry_get_has_frame (GtkEntry *entry);Определяет значение установленное с помощью
gtk_entry_set_has_frame()
.
|
|
Возвращает: |
Имеет ли ввод скошенную рамку |
const GtkBorder* gtk_entry_get_inner_border (GtkEntry *entry);Эта функция возвращает свойство внутренней окантовки поля ввода. Смотрите
gtk_entry_set_inner_border()
.
|
|
Возвращает: |
Начиная с версии 2.10
gint gtk_entry_get_width_chars (GtkEntry *entry);Определяет значение установленное с помощью
gtk_entry_set_width_chars()
.
|
|
Возвращает: |
Число символов запрашиваемого пространства, или отрицательное число если не установлено |
void gtk_entry_set_activates_default (GtkEntry *entry,
gboolean setting);
Если setting
равно TRUE
,
нажатие Enter в поле ввода entry
будет активировать виджет по умолчанию
окна содержащего поле ввода. Это обычно
означает, что диалог содержащий поле
ввода будет закрыт, так как обычно
виджетом по умолчанию является одна из
кнопок диалога.
(Для експертов: если setting
равно TRUE
,
поле ввода вызывает gtk_window_activate_default()
на окне содержащем поле ввода, в
обработчике по умолчанию сигнала
"activate".)
|
|
|
|
void gtk_entry_set_has_frame (GtkEntry *entry,
gboolean setting);
Устанавливает скошенную рамку вокруг поля ввода.
|
|
|
Новое значение |
void gtk_entry_set_inner_border (GtkEntry *entry,
const GtkBorder *border);
Устанавливает свойство внутренней
окантовки entry
's в значение border
,
или очищает его если помещено NULL
.
Внутренняя окантовка это область вокруг
текста ввода, но внутри рамки.
Если установлено, это свойство отменяет свойство стиля внутренней окантовки. Отмена свойства полезна когда вы хотите сделать правку по месту в некотором тексте в полотне или списке виджета, где точное позиционирование поля ввода необходимо.
|
|
|
Начиная с версии 2.10
void gtk_entry_set_width_chars (GtkEntry *entry,
gint n_chars);
Изменяет запрашиваемый размер поля
ввода на размер n_chars
символов.
Помните это изменит запрашиваемый
размер, размер всё еще будет зависеть
от вашего виджета упакованного в
контейнер. Если n_chars
равно
-1, размер вернётся к размеру по умолчанию
поля ввода.
|
|
|
Ширина в символах |
gunichar gtk_entry_get_invisible_char (GtkEntry *entry);Определяет символ используемый вместо реальных символов для поля ввода с установленным свойством видимости в FALSE. Смотрите
gtk_entry_set_invisible_char()
.
|
|
Возвращает: |
Текущий скрывающий символ, или 0, если поле ввода вообще не должно отображать символы. |
void gtk_entry_set_alignment (GtkEntry *entry,
gfloat xalign);
Устанавливает выравнивание для контекста поля ввода. Это контролирует горизонтальное позиционирование контекста когда отображаемый текст короче ширины поля ввода.
|
|
|
Горизонтальное выравнивание, от 0 (лево) до 1 (право). Обратно для выравнивания языков обратной направленности(RTL). |
Начиная с версии 2.4
gfloat gtk_entry_get_alignment (GtkEntry *entry);Получает значение установленное
gtk_entry_set_alignment()
.
|
|
Возвращает: |
выравнивание |
Начиная с версии 2.4
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()
нужны для конвертации индексных байтов в выравнивании в индексные байты содержимого поля ввода.
|
|
Возвращает: |
PangoLayout для этого ввода |
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()
нужны для конвертации индексных байтов
в выравнивании в индексные байты
содержимого поля ввода.
|
|
|
X смещение выравнивания, или |
|
Y смещение выравнивания, или |
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()
).
|
|
|
Байтовый указатель внутри выравненного текста ввода |
Возвращает: |
Байтовый указатель внутри контекста ввода |
gint gtk_entry_text_index_to_layout_index
(GtkEntry *entry,
gint text_index);
Конвертирует из позиции ввода PangoLayout
(возвращаемой gtk_entry_get_layout()
)
в позицию контекста ввода (возвращаемой
gtk_entry_get_text()
).
|
|
|
Байтовый указатель внутри контекста ввода |
Возвращает: |
Байтовый указатель внутри выравненного текста ввода |
gint gtk_entry_get_max_length (GtkEntry *entry);Находит допустимый максимум длины текста в
entry
. Смотритеgtk_entry_set_max_length()
.
|
|
Возвращает: |
Максимально допустимое число символов в GtkEntry, или 0 если нет максимума. |
gboolean gtk_entry_get_visibility (GtkEntry *entry);Определяет видим ли текст в
entry
. Смотритеgtk_entry_set_visibility()
.
|
|
Возвращает: |
|
void gtk_entry_set_completion (GtkEntry *entry,
GtkEntryCompletion *completion);
Устанавливает completion
для
использования в качестве вспомогательного
объекта завершения в entry
.
Вся дальнейшая конфигурация механизма
завершения выполняется с completion
используя GtkEntryCompletion
API. Завершение отключено если completion
установлен в NULL
.
|
|
|
GtkEntryCompletion
или |
Начиная с версии 2.4
GtkEntryCompletion* gtk_entry_get_completion
(GtkEntry *entry);
Находит текущий вспомогательный объект
завершения используемый 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 / WriteFALSE удаляет внешние скосы поля ввода.
Значение по умолчанию: 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 / WriteFALSE отображает "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
|
объект получающий сигнал. |
|
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkEntry *entry,
gpointer user_data) : Run last / Action
|
объект получающий сигнал. |
|
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkEntry *entry,
gpointer user_data) : Run last / Action
|
объект получающий сигнал. |
|
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkEntry *entry,
gpointer user_data) : Run last / Action
|
объект получающий сигнал. |
|
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkEntry *entry,
GtkDeleteType *arg1,
gint arg2,
gpointer user_data) : Run last / Action
|
объект получающий сигнал. |
|
|
|
|
|
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkEntry *entry,
gchar *arg1,
gpointer user_data) : Run last / Action
|
объект получающий сигнал. |
|
|
|
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkEntry *entry,
GtkMovementStep *arg1,
gint arg2,
gboolean arg3,
gpointer user_data) : Run last / Action
|
объект получающий сигнал. |
|
|
|
|
|
|
|
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkEntry *entry,
gpointer user_data) : Run last / Action
|
объект получающий сигнал. |
|
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkEntry *entry,
GtkMenu *arg1,
gpointer user_data) : Run last
|
объект получающий сигнал. |
|
|
|
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkEntry *entry,
gpointer user_data) : Run last / Action
|
объект получающий сигнал. |
|
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
a widget for handling multi-line text entry. |