GtkImage
GtkImage — Виджет для отображения изображения
Функции
Свойства
| gchar * | file | Чтение / Запись |
| GIcon * | gicon | Чтение / Запись |
| gchar * | icon-name | Чтение / Запись |
| GtkIconSet * | icon-set | Чтение / Запись |
| gint | icon-size | Чтение / Запись |
| GdkPixbuf * | pixbuf | Чтение / Запись |
| GdkPixbufAnimation * | pixbuf-анимация | Чтение / Запись |
| gint | размер-пикселей | Чтение / Запись |
| gchar * | ресурс | Чтение / Запись |
| gchar * | stock | Чтение / Запись |
| GtkImageType | тип-хранения | Чтение |
| CairoSurface * | поверхность | Чтение / Запись |
| gboolean | использовать-fallback | Чтение / Запись |
Типы и Значения
| структура | GtkImage |
| перечисление | GtkImageType |
Иерархия Объектов
GObject ╰── GInitiallyUnowned ╰── GtkWidget ╰── GtkMisc ╰── GtkImage
Реализованные Интерфейсы
GtkImage реализует AtkImplementorIface и GtkBuildable.
Включенные файлы
#include <gtk/gtk.h>
Описание
Виджет GtkImage отображает изображение. Различные виды объектов могут быть отображены как изображение; чаще всего вы загружаете GdkPixbuf («буфер пикселей») из файла, а затем отображаете его. Для этого есть удобная функция gtk_image_new_from_file(), которая используется следующим образом:
Если файл не загружен успешно, изображение будет содержать значок «разбитое изображение», аналогичный тому, который используется во многих веб-браузерах. Если вы хотите обработать ошибки при загрузке файла, например, отобразив сообщение об ошибке, то загрузите изображение с помощью gdk_pixbuf_new_from_file(), а затем создайте GtkImage с помощью gtk_image_new_from_pixbuf().
Файл изображения может содержать анимацию, в этом случае GtkImage отобразит анимацию (GdkPixbufAnimation) вместо статического изображения.
GtkImage — подкласс GtkMisc, что означает, что вы можете выровнять его (по центру, слева, справа) и добавить отступы с помощью методов GtkMisc.
GtkImage — это виджет «без окна» (у него нет собственного GdkWindow), поэтому по умолчанию он не получает события. Если вы хотите получать события на изображении, такие как нажатия кнопок, поместите изображение внутрь GtkEventBox, а затем подключитесь к сигналам событий event box.
Обработка событий нажатия на кнопку GtkImage.
GtkWidget*image; image =gtk_image_new_from_file("myfile.png");
При обработке событий в event box помните, что координаты в изображении могут отличаться от координат event box из-за настроек выравнивания и отступов изображения (см. GtkMisc). Самый простой способ решения этой проблемы — установить выравнивание в 0,0 (слева/сверху) и установить отступы в ноль. Тогда начало координат изображения будет совпадать с началом координат event box.
Иногда приложение хочет избежать зависимости от внешних файлов данных, таких как файлы изображений. GTK+ поставляется с программой для этого, которая называется «gdk-pixbuf-csource». Эта библиотека позволяет преобразовать изображение в объявление переменной C, которое затем можно загрузить в GdkPixbuf с помощью gdk_pixbuf_new_from_inline().
Узлы CSS
GtkImage имеет один узел CSS с именем image.
Функции
gtk_image_get_icon_set ()
void gtk_image_get_icon_set (GtkImage *image,GtkIconSet **icon_set,GtkIconSize *size);
gtk_image_get_icon_set устарела с версии 3.10 и не должна использоваться в новых кодах.
Используйте gtk_image_get_icon_name() вместо этого.
Получает набор иконок и размер, отображаемые GtkImage. Тип хранения изображения должен быть GTK_IMAGE_EMPTY или GTK_IMAGE_ICON_SET (см. gtk_image_get_storage_type()).
Параметры
image | a GtkImage | |
icon_set | место для хранения GtkIconSet, или | [out][transfer none][allow-none] |
size | место для хранения размера значка ( GtkIconSize), или | [out][allow-none][type int] |
gtk_image_get_pixbuf ()
GdkPixbuf *
gtk_image_get_pixbuf (GtkImage *image); Получает GdkPixbuf, отображаемый GtkImage. Тип хранения изображения должен быть GTK_IMAGE_EMPTY или GTK_IMAGE_PIXBUF (см. gtk_image_get_storage_type()). Вызывающий функцию не владеет ссылкой на возвращённый pixbuf.
Параметры
image | a GtkImage |
Возвращаемое значение
отображаемый pixbuf, или NULL, если изображение пустое.
[nullable][transfer none]
gtk_image_get_stock ()
void gtk_image_get_stock (GtkImage *image,gchar **stock_id,GtkIconSize *size);
gtk_image_get_stock устарела с версии 3.10 и не должна использоваться в новых кодах.
Используйте gtk_image_get_icon_name() вместо этого.
Получает имя и размер значка по умолчанию, отображаемые GtkImage. Тип хранения изображения должен быть GTK_IMAGE_EMPTY или GTK_IMAGE_STOCK (см. gtk_image_get_storage_type()). Возвращённая строка принадлежит GtkImage и не должна освобождаться.
Параметры
image | a GtkImage | |
stock_id | место для хранения имени значка по умолчанию, или | [out][transfer none][allow-none] |
size | место для хранения размера значка по умолчанию ( GtkIconSize), или | [out][allow-none][type int] |
gtk_image_get_animation ()
GdkPixbufAnimation *
gtk_image_get_animation (GtkImage *image); Получает GdkPixbufAnimation, отображаемый GtkImage. Тип хранения изображения должен быть GTK_IMAGE_EMPTY или GTK_IMAGE_ANIMATION (см. gtk_image_get_storage_type()). Вызывающий функцию не владеет ссылкой на возвращённую анимацию.
Параметры
image | a GtkImage |
Возвращаемое значение
отображаемая анимация, или NULL, если изображение пустое.
[nullable][transfer none]
gtk_image_get_icon_name ()
void gtk_image_get_icon_name (GtkImage *image,const gchar **icon_name,GtkIconSize *size);
Получает имя и размер значка, отображаемые GtkImage. Тип хранения изображения должен быть GTK_IMAGE_EMPTY или GTK_IMAGE_ICON_NAME (см. gtk_image_get_storage_type()). Возвращённая строка принадлежит GtkImage и не должна освобождаться.
Параметры
image | a GtkImage | |
icon_name | место для хранения имени иконки, или | [out][transfer none][allow-none] |
size | место для хранения размера иконки (GtkIconSize), или | [out][allow-none][type int] |
С: 2.6
gtk_image_get_gicon ()
void gtk_image_get_gicon (GtkImage *image,GIcon **gicon,GtkIconSize *size);
Получает GIcon и размер, отображаемые виджетом GtkImage. Тип хранения изображения должен быть GTK_IMAGE_EMPTY или GTK_IMAGE_GICON (см. gtk_image_get_storage_type()). Вызывающий функцию не владеет ссылкой на возвращаемый GIcon.
Параметры
image | виджет GtkImage | |
gicon | [out][transfer none][allow-none] | |
size | место для хранения размера значка (GtkIconSize) или | [out][allow-none][type int] |
С: 2.14
gtk_image_get_storage_type ()
GtkImageType
gtk_image_get_storage_type (GtkImage *image); Получает тип представления, используемого виджетом GtkImage для хранения данных изображения. Если у GtkImage нет данных изображения, возвращаемое значение будет GTK_IMAGE_EMPTY.
Параметры
image | виджет GtkImage |
Возвращает
используемое представление изображения
gtk_image_new_from_file ()
GtkWidget *
gtk_image_new_from_file (const gchar *filename); Создаёт новый виджет GtkImage, отображающий файл filename . Если файла нет или его не удаётся загрузить, созданный GtkImage отобразит значок «разбитого изображения». Данная функция никогда не возвращает NULL, всегда возвращая валидный виджет GtkImage.
Если файл содержит анимацию, изображение будет содержать анимацию.
Если вам нужно обнаруживать ошибки загрузки файла, используйте gdk_pixbuf_new_from_file() для самостоятельной загрузки файла, а затем создайте GtkImage из pixbuf. (Или для анимаций, используйте gdk_pixbuf_animation_new_from_file()).
Тип хранения (gtk_image_get_storage_type()) возвращаемого изображения не определён, он будет соответствующим для отображения файла.
Параметры
filename | имя файла. | [type filename] |
Возвращает
новый виджет GtkImage
gtk_image_new_from_icon_set ()
GtkWidget * gtk_image_new_from_icon_set (GtkIconSet *icon_set,GtkIconSize size);
gtk_image_new_from_icon_set устарел начиная с версии 3.10 и не должен использоваться в новом коде.
Используйте gtk_image_new_from_icon_name() вместо этого.
Создаёт виджет GtkImage, отображающий набор значков. Примеры стандартных размеров: GTK_ICON_SIZE_MENU, GTK_ICON_SIZE_SMALL_TOOLBAR. Вместо этой функции, как правило, лучше создать GtkIconFactory, поместить в него наборы значков, добавить фабрику в список стандартных фабрик с помощью gtk_icon_factory_add_default(), и затем использовать gtk_image_new_from_stock(). Это позволит темам переопределять значок, поставляемый с вашим приложением.
Виджет GtkImage не предполагает ссылки на набор значков; вам всё ещё нужно освободить его, если вы владеете ссылками. GtkImage добавит свою собственную ссылку вместо принятия вашей.
Параметры
icon_set | набор значков GtkIconSet | |
size | размер стандартного значка (GtkIconSize). | [type int] |
Возвращает
новый виджет GtkImage
gtk_image_new_from_pixbuf ()
GtkWidget *
gtk_image_new_from_pixbuf (GdkPixbuf *pixbuf); Создаёт новый виджет GtkImage, отображающий pixbuf . GtkImage не предполагает ссылки на pixbuf; вам всё ещё нужно освободить его, если вы владеете ссылками. GtkImage добавит свою собственную ссылку вместо принятия вашей.
Обратите внимание, что эта функция просто создаёт GtkImage из pixbuf. Созданный GtkImage не будет реагировать на изменения состояния. Если вам это нужно, используйте gtk_image_new_from_icon_name().
Возвращает
новый виджет GtkImage
gtk_image_new_from_stock ()
GtkWidget * gtk_image_new_from_stock (const gchar *stock_id,GtkIconSize size);
gtk_image_new_from_stock устарело начиная с версии 3.10 и не должно использоваться в новом коде.
Используйте gtk_image_new_from_icon_name() вместо этого.
Создаёт GtkImage, отображающий значок из стандартной библиотеки. Примеры имён значков: GTK_STOCK_OPEN, GTK_STOCK_QUIT. Примеры размеров значков: GTK_ICON_SIZE_MENU, GTK_ICON_SIZE_SMALL_TOOLBAR. Если имя значка не найдено, изображение будет пустым. Вы можете зарегистрировать свои собственные имена значков, см. gtk_icon_factory_add_default() и gtk_icon_factory_add().
Параметры
stock_id | имя значка из стандартной библиотеки | |
size | размер значка (GtkIconSize). | [type int] |
Возвращаемое значение
новый GtkImage с отображаемым значком
gtk_image_new_from_animation ()
GtkWidget *
gtk_image_new_from_animation (GdkPixbufAnimation *animation); Создаёт GtkImage, отображающий заданную анимацию. GtkImage не использует ссылку на анимацию; вам всё ещё необходимо её освободить, если вы владеете ссылками. GtkImage добавит свою собственную ссылку вместо использования вашей.
Обратите внимание, что кадры анимации отображаются с помощью тайм-аута с приоритетом G_PRIORITY_DEFAULT. При использовании анимаций для индикации загруженности, учтите, что анимация будет отображаться только если основной цикл не занят чем-то с более высоким приоритетом.
Параметры
animation | анимация |
Возвращаемое значение
новый виджет GtkImage
gtk_image_new_from_icon_name ()
GtkWidget * gtk_image_new_from_icon_name (const gchar *icon_name,GtkIconSize size);
Создаёт GtkImage, отображающий значок из текущей темы значков. Если имя значка не найдено, будет отображён значок «изображение не найдено». Если текущая тема значков изменена, значок будет соответствующим образом обновлён.
Параметры
icon_name | имя значка | |
size | размер значка (GtkIconSize). | [type int] |
Возвращаемое значение
новый GtkImage с отображаемым значком из темы
С версии: 2.6
gtk_image_new_from_gicon ()
GtkWidget * gtk_image_new_from_gicon (GIcon *icon,GtkIconSize size);
Создаёт GtkImage, отображающий значок из текущей темы значков. Если имя значка не найдено, будет отображён значок «изображение не найдено». Если текущая тема значков изменена, значок будет соответствующим образом обновлён.
Параметры
icon | значок | |
size | размер значка (GtkIconSize). | [type int] |
Возвращаемое значение
новый GtkImage с отображаемым значком из темы
С версии: 2.14
gtk_image_new_from_resource ()
GtkWidget *
gtk_image_new_from_resource (const gchar *resource_path); Создаёт новый GtkImage, отображающий ресурсный файл resource_path. Если файл не найден или не может быть загружен, полученный GtkImage отобразит значок «изображение не найдено». Эта функция никогда не возвращает NULL, всегда возвращая корректный виджет GtkImage.
Если файл содержит анимацию, изображение будет содержать анимацию.
Если вам необходимо обнаруживать ошибки загрузки файла, используйте gdk_pixbuf_new_from_file() для самостоятельной загрузки файла, а затем создайте GtkImage из pixbuf. (Или для анимаций используйте gdk_pixbuf_animation_new_from_file()).
Тип хранения (gtk_image_get_storage_type()) возвращённого изображения не определён, это будет то, что подходит для отображения файла.
Параметры
resource_path | путь к ресурсу |
Возвращаемое значение
новый GtkImage
С версии: 3.4
gtk_image_new_from_surface ()
GtkWidget *
gtk_image_new_from_surface (cairo_surface_t *surface); Создаёт новый GtkImage, отображающий surface. GtkImage не использует ссылку на поверхность; вам всё ещё необходимо её освободить, если вы владеете ссылками. GtkImage добавит свою собственную ссылку вместо использования вашей.
Параметры
surface | поверхность cairo_surface_t, или | [allow-none] |
Возвращаемое значение
новый GtkImage
С версии: 3.10
gtk_image_set_from_file ()
void gtk_image_set_from_file (GtkImage *image,const gchar *filename);
См. gtk_image_new_from_file() для подробностей.
gtk_image_set_from_icon_set ()
void gtk_image_set_from_icon_set (GtkImage *image,GtkIconSet *icon_set,GtkIconSize size);
gtk_image_set_from_icon_set устарело с версии 3.10 и не должно использоваться в новом коде.
Используйте gtk_image_set_from_icon_name() вместо него.
См. gtk_image_new_from_icon_set() для подробностей.
Параметры
image | a GtkImage | |
icon_set | ||
size | размер значка (GtkIconSize). | [type int] |
gtk_image_set_from_pixbuf ()
void gtk_image_set_from_pixbuf (GtkImage *image,GdkPixbuf *pixbuf);
См. gtk_image_new_from_pixbuf() для подробностей.
gtk_image_set_from_stock ()
void gtk_image_set_from_stock (GtkImage *image,const gchar *stock_id,GtkIconSize size);
gtk_image_set_from_stock устарело с версии 3.10 и не должно использоваться в новом коде.
Используйте gtk_image_set_from_icon_name() вместо него.
См. gtk_image_new_from_stock() для подробностей.
Параметры
image | a GtkImage | |
stock_id | имя значка | |
size | размер значка (GtkIconSize). | [type int] |
gtk_image_set_from_animation ()
void gtk_image_set_from_animation (GtkImage *image,GdkPixbufAnimation *animation);
Принудительно отображает заданную анимацию в GtkImage (или ничего, если анимация задана как NULL).
Параметры
image | a GtkImage | |
animation |
gtk_image_set_from_icon_name ()
void gtk_image_set_from_icon_name (GtkImage *image,const gchar *icon_name,GtkIconSize size);
См. gtk_image_new_from_icon_name() для подробностей.
Параметры
image | a GtkImage | |
icon_name | имя значка | |
size | размер значка (GtkIconSize). | [type int] |
С: 2.6
gtk_image_set_from_gicon ()
void gtk_image_set_from_gicon (GtkImage *image,GIcon *icon,GtkIconSize size);
См. gtk_image_new_from_gicon() для подробностей.
Параметры
image | a GtkImage | |
icon | значок | |
size | размер значка (GtkIconSize). | [type int] |
С: 2.14
gtk_image_set-from-resource ()
void gtk_image_set_from_resource (GtkImage *image,const gchar *resource_path);
См. gtk_image_new_from_resource() для подробностей.
gtk_image_set_from_surface ()
void gtk_image_set_from_surface (GtkImage *image,cairo_surface_t *surface);
См. gtk_image_new_from_surface() для подробностей.
Параметры
image | a GtkImage | |
surface | a cairo_surface_t |
С: 3.10
gtk_image_clear ()
void
gtk_image_clear (GtkImage *image); Сбрасывает изображение на пустое состояние.
Параметры
image | a GtkImage |
С: 2.8
gtk_image_new ()
GtkWidget *
gtk_image_new (void); Создаёт новый пустой виджет GtkImage.
Возвращает
новый созданный виджет GtkImage.
gtk_image_set_pixel_size ()
void gtk_image_set_pixel_size (GtkImage *image,gint pixel_size);
Устанавливает размер пикселей для использования с именованными значками. Если размер пикселей установлен ≠ -1, он используется вместо размера значка, установленного с помощью gtk_image_set_from_icon_name().
Параметры
image | a GtkImage | |
pixel_size | новый размер пикселей |
С: 2.6
Типы и значения
struct GtkImage
struct GtkImage;
Эта структура содержит только приватные данные и должна обращаться с помощью функций ниже.
перечисление GtkImageType
Описывает представление данных изображения, используемое GtkImage. Если вы хотите получить изображение из виджета, вы можете получить только текущее хранимое представление. Например, если gtk_image_get_storage_type() возвращает GTK_IMAGE_PIXBUF, то вы можете вызвать gtk_image_get_pixbuf(), но не gtk_image_get_stock(). Для пустых изображений вы можете запросить любой тип хранения (вызвать любую из функций "get"), но все они вернут значения NULL.
Члены
GTK_IMAGE_EMPTY | изображение, которое не отображается виджетом | |
GTK_IMAGE_PIXBUF | виджет содержит GdkPixbuf | |
GTK_IMAGE_STOCK | виджет содержит имя стокового элемента | |
GTK_IMAGE_ICON_SET | виджет содержит GtkIconSet | |
GTK_IMAGE_ANIMATION | виджет содержит GdkPixbufAnimation | |
GTK_IMAGE_ICON_NAME | виджет содержит имя значка. Этот тип изображения был добавлен в GTK+ 2.6 | |
GTK_IMAGE_GICON | виджет содержит GIcon. Этот тип изображения был добавлен в GTK+ 2.14 | |
GTK_IMAGE_SURFACE | виджет содержит cairo_surface_t. Этот тип изображения был добавлен в GTK+ 3.10 |
Подробности свойств
Свойство “file”
“file” gchar *
Имя файла для загрузки и отображения.
Флаги: Чтение / Запись
Значение по умолчанию: NULL
Свойство “gicon”
“gicon” GIcon *
GIcon, отображаемый в GtkImage. Для значков с темой, если тема значков изменена, изображение будет обновлено автоматически.
Флаги: Чтение / Запись
С: 2.14
Свойство “icon-name”
“icon-name” gchar *
Имя значка в теме значков. Если тема значков изменена, изображение будет обновлено автоматически.
Флаги: Чтение / Запись
Значение по умолчанию: NULL
С: 2.6
Свойство “icon-set”
“icon-set” GtkIconSet *
Набор значков для отображения.
GtkImage:icon-set устарело с версии 3.10 и не должно использоваться в новых кодах.
Используйте «icon-name» вместо этого.
Флаги: Чтение / Запись
Свойство “icon-size”
“icon-size” gint
Символический размер для использования для стокового значка, набора значков или именованного значка.
Флаги: Чтение / Запись
Допустимые значения: >= 0
Значение по умолчанию: 4
Свойство “pixbuf-animation”
“pixbuf-animation” GdkPixbufAnimation *
GdkPixbufAnimation для отображения.
Флаги: Чтение / Запись
Свойство “pixel-size”
“pixel-size” gint
Свойство «pixel-size» может использоваться для указания фиксированного размера, перезаписывающего свойство «icon-size» для изображений типа GTK_IMAGE_ICON_NAME.
Флаги: Чтение / Запись
Допустимые значения: >= -1
Значение по умолчанию: -1
С: 2.6
Свойство “resource”
“resource” gchar *
Путь к файлу ресурсов для отображения.
Флаги: Чтение / Запись
Значение по умолчанию: NULL
С: 3.8
Свойство “stock”
“stock” gchar *
Идентификатор стокового элемента для отображения стокового изображения.
GtkImage:stock устарело с версии 3.10 и не должно использоваться в новых кодах.
Используйте «icon-name» вместо этого.
Флаги: Чтение / Запись
Значение по умолчанию: NULL
Свойство “storage-type”
“storage-type” GtkImageType
Используемое представление данных изображения.
Флаги: Чтение
Значение по умолчанию: GTK_IMAGE_EMPTY
Свойство “surface”
“surface” CairoSurface *
cairo_surface_t для отображения.
Флаги: Чтение / Запись
Свойство “use-fallback”
“use-fallback” gboolean
Использовать ли стандартное имя значка для обратной совместимости для отображаемого в GtkImage значка. Значение этого свойства актуально только для изображений типа GTK_IMAGE_ICON_NAME и GTK_IMAGE_GICON.
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
С: 3.0
См. также
© 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/GtkImage.html