Prev

Up

Home

GTK+ Reference Manual

Next

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

GtkComboBox

GtkComboBox Виджет используемый для выбора из списка пунктов

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

#include <gtk/gtk.h> GtkComboBox; GtkWidget* gtk_combo_box_new (void); GtkWidget* gtk_combo_box_new_with_model (GtkTreeModel *model); gint gtk_combo_box_get_wrap_width (GtkComboBox *combo_box); void gtk_combo_box_set_wrap_width (GtkComboBox *combo_box, gint width); gint gtk_combo_box_get_row_span_column (GtkComboBox *combo_box); void gtk_combo_box_set_row_span_column (GtkComboBox *combo_box, gint row_span); gint gtk_combo_box_get_column_span_column (GtkComboBox *combo_box); void gtk_combo_box_set_column_span_column (GtkComboBox *combo_box, gint column_span); gint gtk_combo_box_get_active (GtkComboBox *combo_box); void gtk_combo_box_set_active (GtkComboBox *combo_box, gint index_); gboolean gtk_combo_box_get_active_iter (GtkComboBox *combo_box, GtkTreeIter *iter); void gtk_combo_box_set_active_iter (GtkComboBox *combo_box, GtkTreeIter *iter); GtkTreeModel* gtk_combo_box_get_model (GtkComboBox *combo_box); void gtk_combo_box_set_model (GtkComboBox *combo_box, GtkTreeModel *model); GtkWidget* gtk_combo_box_new_text (void); void gtk_combo_box_append_text (GtkComboBox *combo_box, const gchar *text); void gtk_combo_box_insert_text (GtkComboBox *combo_box, gint position, const gchar *text); void gtk_combo_box_prepend_text (GtkComboBox *combo_box, const gchar *text); void gtk_combo_box_remove_text (GtkComboBox *combo_box, gint position); gchar* gtk_combo_box_get_active_text (GtkComboBox *combo_box); void gtk_combo_box_popup (GtkComboBox *combo_box); void gtk_combo_box_popdown (GtkComboBox *combo_box); AtkObject* gtk_combo_box_get_popup_accessible (GtkComboBox *combo_box); GtkTreeViewRowSeparatorFunc gtk_combo_box_get_row_separator_func (GtkComboBox *combo_box); void gtk_combo_box_set_row_separator_func (GtkComboBox *combo_box, GtkTreeViewRowSeparatorFunc func, gpointer data, GtkDestroyNotify destroy); void gtk_combo_box_set_add_tearoffs (GtkComboBox *combo_box, gboolean add_tearoffs); gboolean gtk_combo_box_get_add_tearoffs (GtkComboBox *combo_box); void gtk_combo_box_set_title (GtkComboBox *combo_box, const gchar *title); const gchar* gtk_combo_box_get_title (GtkComboBox *combo_box); void gtk_combo_box_set_focus_on_click (GtkComboBox *combo, gboolean focus_on_click); gboolean gtk_combo_box_get_focus_on_click (GtkComboBox *combo);

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

GObject +----GInitiallyUnowned +----GtkObject +----GtkWidget +----GtkContainer +----GtkBin +----GtkComboBox +----GtkComboBoxEntry

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

GtkComboBox осуществляет AtkImplementorIface, GtkCellEditable и GtkCellLayout.

Свойства

"active" gint : Read / Write "add-tearoffs" gboolean : Read / Write "column-span-column" gint : Read / Write "focus-on-click" gboolean : Read / Write "has-frame" gboolean : Read / Write "model" GtkTreeModel : Read / Write "popup-shown" gboolean : Read "row-span-column" gint : Read / Write "tearoff-title" gchararray : Read / Write "wrap-width" gint : Read / Write

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

"appears-as-list" gboolean : Read

Сигналы

"changed" void user_function (GtkComboBox *widget, gpointer user_data) : Run last

Описание

GtkComboBox это виджет позволяющий пользователю сделать выбор из списка доступных пунктов. GtkComboBox отображает выбранный пункт. При активации, GtkComboBox отображает всплывающее меню которое позволяет пользователю сделать новый выбор. Стиль в котором отображается выбранное значение и всплывающее меню определяется текущемй темой. Он может быть похож на GtkOptionMenu, или на Windows-стиль поля со списком (combo box).

В отличии от его предшественников GtkCombo и GtkOptionMenu, GtkComboBox использует шаблон модели-вида; список доступных пунктов выбора определен в форме дерева модели и отображаемый выбор может быть адаптирован к данным в модели используя представленные ячейки, поскольку вы в дереве вида. Это возможно поскольку GtkComboBox осуществляет GtkCellLayout интерфейс. Модель дерева содержит допустимые пункты выбора не только в виде простого списка, он может быть реальным деревом и при появлении будет изображать структуру дерева.

В дополнение к модели-вида API, GtkComboBox предлагает простой API который подходит для новых меню содержащих только текст и скрывает сложность управления данными в модели. Он состоит из функций gtk_combo_box_new_text(), gtk_combo_box_append_text(), gtk_combo_box_insert_text(), gtk_combo_box_prepend_text(), gtk_combo_box_remove_text() и gtk_combo_box_get_active_text().

Детали

GtkComboBox

typedef struct _GtkComboBox GtkComboBox;

gtk_combo_box_new ()

GtkWidget*  gtk_combo_box_new               (void);

Создаёт новый пустой GtkComboBox.

Возвращает :

новый GtkComboBox.

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


gtk_combo_box_new_with_model ()

GtkWidget*  gtk_combo_box_new_with_model    (GtkTreeModel *model);

Создаёт новый GtkComboBox с инициализированной моделью model.

model :

GtkTreeModel.

Возвращает :

новый GtkComboBox.

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


gtk_combo_box_get_wrap_width ()

gint        gtk_combo_box_get_wrap_width    (GtkComboBox *combo_box);

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

combo_box :

GtkComboBox.

Возвращает :

Ширина оболочки.

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


gtk_combo_box_set_wrap_width ()

void gtk_combo_box_set_wrap_width (GtkComboBox *combo_box, gint width);

Устанавливает ширину оболочки combo_box равной width. Ширина оболочки в основном предпочтительное число столбцов в котором вам нужно расположить таблицу всплывающего меню.

combo_box :

GtkComboBox.

width :

Предпочтительное число столбцов.

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


gtk_combo_box_get_row_span_column ()

gint gtk_combo_box_get_row_span_column (GtkComboBox *combo_box);

Возвращает интервал столбцов и строк информации для combo_box.

combo_box :

A GtkComboBox.

Возвращает :

Интервал строк и столбцов.

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


gtk_combo_box_set_row_span_column ()

void gtk_combo_box_set_row_span_column (GtkComboBox *combo_box, gint row_span);

Устанавливает интервал столбцов и строк для combo_box равный row_span. Интервал столбцов и строк содержит целочисленное указывающее сколько строк между пунктами должно быть.

combo_box :

GtkComboBox.

row_span :

Строки в модели помещаемые в течении составления.

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


gtk_combo_box_get_column_span_column ()

gint gtk_combo_box_get_column_span_column (GtkComboBox *combo_box);

Возвращает интервал между столбцами для combo_box.

combo_box :

GtkComboBox.

Возвращает :

интервал.

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


gtk_combo_box_set_column_span_column ()

void gtk_combo_box_set_column_span_column (GtkComboBox *combo_box, gint column_span);

Устанавливает интервал между столбцами для combo_box равный column_span. Интервал между столбцами содержит целочисленное указывающее сколько столбцов должно быть между пунктами.

combo_box :

GtkComboBox.

column_span :

Столбцы помещаемые в модель в течении составления.

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


gtk_combo_box_get_active ()

gint        gtk_combo_box_get_active        (GtkComboBox *combo_box);

Возвращает значение текущемго активного пункта, или -1 если не один пункт не активен. Если модель не модель дерева и активный пункт не дочерний пункт корня дерева, эта функция возвращает gtk_tree_path_get_indices (path)[0], где path это GtkTreePath активного пункта.

combo_box :

GtkComboBox.

Возвращает :

Целочисленное обозначающее текущий активный пункт, или -1 если нет активных пунктов.

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


gtk_combo_box_set_active ()

void gtk_combo_box_set_active (GtkComboBox *combo_box, gint index_);

Устанавливает активным пункт combo_box равный index.

combo_box :

GtkComboBox.

index_ :

Номер помещаемый в модель в течении составления, или -1 если активный пункт не нужен.

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


gtk_combo_box_get_active_iter ()

gboolean gtk_combo_box_get_active_iter (GtkComboBox *combo_box, GtkTreeIter *iter);

Устанавливает iter в точку текущемго активного пункта, если есть.

combo_box :

GtkComboBox

iter :

неинициализированный GtkTreeIter.

Возвращает :

TRUE, если iter был установлен

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


gtk_combo_box_set_active_iter ()

void gtk_combo_box_set_active_iter (GtkComboBox *combo_box, GtkTreeIter *iter);

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

combo_box :

GtkComboBox

iter :

GtkTreeIter.

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


gtk_combo_box_get_model ()

GtkTreeModel* gtk_combo_box_get_model       (GtkComboBox *combo_box);

Возвращает GtkTreeModel который действует как источник данных для combo_box.

combo_box :

GtkComboBox.

Возвращает :

GtkTreeModel который был помещен в течении составления.

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


gtk_combo_box_set_model ()

void gtk_combo_box_set_model (GtkComboBox *combo_box, GtkTreeModel *model);

Устанавливает модель используемую combo_box равную model. Сбрасывает предыдущую модель (если возможно). Если модель равна NULL, то когда просто сбрасывается предыдущая модель.

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

combo_box :

GtkComboBox.

model :

GtkTreeModel.

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


gtk_combo_box_new_text ()

GtkWidget*  gtk_combo_box_new_text          (void);

Удобная функция для создания нового текстового поля со списком, которое является GtkComboBox просто отображающим строки. Если вы используете эту функцию для создания текстового поля со списком, вы должны только управлять источником данных с помощью следующих удобных функций: gtk_combo_box_append_text(), gtk_combo_box_insert_text(), gtk_combo_box_prepend_text() и gtk_combo_box_remove_text().

Возвращает :

Новое текстовое поле со списком.

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


gtk_combo_box_append_text ()

void gtk_combo_box_append_text (GtkComboBox *combo_box, const gchar *text);

Добавляет string в начало списка в combo_box. Помните что вы можете использовать эту функцию только для полей со списком созданных с помощью gtk_combo_box_new_text().

combo_box :

GtkComboBox созданный с помощью gtk_combo_box_new_text().

text :

Строка.

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


gtk_combo_box_insert_text ()

void gtk_combo_box_insert_text (GtkComboBox *combo_box, gint position, const gchar *text);

Вставляет string в position списка в combo_box. Помните что вы можете использовать эту функцию только для полей со списком созданных с помощью gtk_combo_box_new_text().

combo_box :

GtkComboBox созданный с помощью gtk_combo_box_new_text().

position :

Позиция для вставляемого text.

text :

Строка.

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


gtk_combo_box_prepend_text ()

void gtk_combo_box_prepend_text (GtkComboBox *combo_box, const gchar *text);

Вставляет string в конец списка в combo_box. Помните что вы можете использовать эту функцию только для полей со списком созданных с помощью gtk_combo_box_new_text().

combo_box :

GtkComboBox созданный с помощью gtk_combo_box_new_text().

text :

Строка.

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


gtk_combo_box_remove_text ()

void gtk_combo_box_remove_text (GtkComboBox *combo_box, gint position);

Удаляет строку из position в combo_box. Помните что вы можете использовать эту функцию только для полей со списком созданных с помощью gtk_combo_box_new_text().

combo_box :

GtkComboBox созданный с помощью gtk_combo_box_new_text().

position :

Номер позиции удаляемого пункта.

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


gtk_combo_box_get_active_text ()

gchar*      gtk_combo_box_get_active_text   (GtkComboBox *combo_box);

Возвращает текущий активный пункт в combo_box или NULL если нет выбранного пункта. Помните, вы можете использовать эту функцию для полей со списком созданных с помощью gtk_combo_box_new_text() и с GtkComboBoxEntrys.

combo_box :

GtkComboBox созданный с помощью gtk_combo_box_new_text().

Возвращает :

Строку содержащую текст активного пункта.

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


gtk_combo_box_popup ()

void        gtk_combo_box_popup             (GtkComboBox *combo_box);

Всплывающее меню или выпадающий список combo_box.

Эта функция в основном для доступности технологии; приложения редко используют её.

combo_box :

GtkComboBox

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


gtk_combo_box_popdown ()

void        gtk_combo_box_popdown           (GtkComboBox *combo_box);

Скрывает всплывающее меню или выпадающий список combo_box.

Эта функция в основном для доступности технологии; приложения редко используют её.

combo_box :

GtkComboBox

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


gtk_combo_box_get_popup_accessible ()

AtkObject* gtk_combo_box_get_popup_accessible (GtkComboBox *combo_box);

Получает доступный объект соответствующий всплывающему полю со списком.

Эта функция в основном для доступности технологии; приложения редко используют её.

combo_box :

GtkComboBox

Возвращает :

доступный объект соответствующий всплывающему полю со списком.

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


gtk_combo_box_get_row_separator_func ()

GtkTreeViewRowSeparatorFunc gtk_combo_box_get_row_separator_func (GtkComboBox *combo_box);

Возвращает текущую функцию разделителя строки.

combo_box :

GtkComboBox

Возвращает :

текущую функцию разделителя строки.

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


gtk_combo_box_set_row_separator_func ()

void gtk_combo_box_set_row_separator_func (GtkComboBox *combo_box, GtkTreeViewRowSeparatorFunc func, gpointer data, GtkDestroyNotify destroy);

Устанавливает функцию разделителя, которая используется для определения того где строка должна отображаться как разделитель. Если функция строки разделителя равна NULL, разделители не отображаются. Это значение по умолчанию.

combo_box :

GtkComboBox

func :

GtkTreeViewRowSeparatorFunc

data :

Пользовательские данные помещаемые в func, или NULL

destroy :

Сообщение разрушения для data, или NULL

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


gtk_combo_box_set_add_tearoffs ()

void gtk_combo_box_set_add_tearoffs (GtkComboBox *combo_box, gboolean add_tearoffs);

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

combo_box :

GtkComboBox

add_tearoffs :

TRUE для добавления отсоединяющего пункта

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


gtk_combo_box_get_add_tearoffs ()

gboolean    gtk_combo_box_get_add_tearoffs  (GtkComboBox *combo_box);

Получает текущеме значение :add-tearoffs свойства.

combo_box :

GtkComboBox

Возвращает :

Текущее значение :add-tearoffs свойства.


gtk_combo_box_set_title ()

void gtk_combo_box_set_title (GtkComboBox *combo_box, const gchar *title);

Устанавливает заголовок меню в отсоединяемом режиме.

combo_box :

GtkComboBox

title :

заголовок меню в отсоединяемом режиме.

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


gtk_combo_box_get_title ()

const gchar* gtk_combo_box_get_title        (GtkComboBox *combo_box);

Получает текущий заголовок отсоединяемого меню. Смотрите gtk_combo_box_set_add_tearoffs().

combo_box :

GtkComboBox

Возвращает :

Заголовок меню в отсоединяемом режиме. Это внутренняя копия строки которая не должна освобождаться.

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


gtk_combo_box_set_focus_on_click ()

void gtk_combo_box_set_focus_on_click (GtkComboBox *combo, gboolean focus_on_click);

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

combo :

GtkComboBox

focus_on_click :

Должен ли перехватываться фокус при нажатии мышки

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


gtk_combo_box_get_focus_on_click ()

gboolean gtk_combo_box_get_focus_on_click (GtkComboBox *combo);

Определяет перехватывает ли поле со списком фокус когда на него нажимают мышкой. Смотрите gtk_combo_box_set_focus_on_click().

combo :

GtkComboBox

Возвращает :

TRUE если фокус перехватывается при нажатии мышкой.

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

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

Свойство "active"

  "active"               gint                  : Read / Write

Текущий активный пункт. Если модель не плоское дерево-модель, а активный пункт не дочерний виджет корня дерева модели, это свойство имеет значение gtk_tree_path_get_indices (path)[0], где path равен GtkTreePath активного пункта.

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

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

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


Свойство "add-tearoffs"

  "add-tearoffs"         gboolean              : Read / Write

Свойство add-tearoffs контролирует создание пункта меню для отсоединения.

Помните, это имеет эффект только для меню поля со списком.

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

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


Свойство "column-span-column"

  "column-span-column"   gint                  : Read / Write

Если установлено не в отрицательное значение, оно означает перечень столбцов типа G_TYPE_INT в модели.

Значение столбца используется для определения сколько столбцов будет охватывать список.

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

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

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


Свойство "focus-on-click"

  "focus-on-click"       gboolean              : Read / Write

Будет ли перехватывать фокус поле со списком при нажатии на него мышкой.

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


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

  "has-frame"            gboolean              : Read / Write

Свойство has-frame контролирует рамку вокруг ввода.

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

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


Свойство "model"

  "model"                GtkTreeModel          : Read / Write

Модель из которой поле со списком берет значения отображаемые в списке.

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


Свойство "popup-shown"

  "popup-shown"          gboolean              : Read

Отображен ли выпадающий список поля со списком. Помните, это свойство полезно, потому что оно позволяет вам подключать notify::popup-shown.

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

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


Свойство "row-span-column"

  "row-span-column"      gint                  : Read / Write

Если установлено в неотрицательное значение, оно означает перечень столбцов типа G_TYPE_INT в модели.

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

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

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

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


Свойство "tearoff-title"

  "tearoff-title"        gchararray            : Read / Write

Заголовок отображаемый когда меню отсоединено.

Default value: ""

Since 2.10


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

  "wrap-width"           gint                  : Read / Write

Если wrap-width установлено в положительное значение, список отображается в несколько столбцов, число столбцов определяет ширину оболочки.

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

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

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

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

Свойство стиля "appears-as-list"

  "appears-as-list"      gboolean              : Read

Должно ли выпадающее меню быть похоже на список а не на меню.

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

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

Сигнал "changed"

void user_function (GtkComboBox *widget, gpointer user_data) : Run last

Сигнал изменения издаётся когда активизируется изменённый пункт. Это может понадобиться когда пользователь выбирает другой пункт из списка, или когда вызвана функция gtk_combo_box_set_active_iter(). Он также издаётся в течении выбора внутри GtkComboBoxEntry, а также когда выбран пункт из списка GtkComboBoxEntry's.

widget :

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

user_data :

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

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

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

GtkComboBoxEntry, GtkTreeModel, GtkCellRenderer