GtkImage
GtkImage — Виджет для отображения изображения
Функции
Свойства
| char * | file | Чтение / Запись |
| GIcon * | gicon | Чтение / Запись |
| char * | имя-иконки | Чтение / Запись |
| GtkIconSet * | набор-иконок | Чтение / Запись |
| int | размер-иконки | Чтение / Запись |
| GdkPixbuf * | pixbuf | Чтение / Запись |
| GdkPixbufAnimation * | анимация-pixbuf | Чтение / Запись |
| int | размер-пикселей | Чтение / Запись |
| char * | ресурс | Чтение / Запись |
| char * | стандартный | Чтение / Запись |
| Тип изображения | тип-хранения | Чтение |
| CairoSurface * | поверхность | Чтение / Запись |
| gboolean | использовать-подстановку | Чтение / Запись |
Типы и значения
| структура | 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. Классы стилей могут появляться на CSS-узлах image: .icon-dropshadow, .lowres-icon.
Функции
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 | элемент GtkImage | |
icon_set | место для хранения GtkIconSet, или | [out][transfer none][allow-none] |
size | место для хранения размера значка ( | [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 | элемент 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 | элемент GtkImage | |
stock_id | место для хранения имени значка по умолчанию, или | [out][transfer none][allow-none] |
size | место для хранения размера значка по умолчанию ( | [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 | элемент 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 | элемент GtkImage | |
icon_name | место для хранения имени иконки, или | [out][transfer none][allow-none] |
size | место для хранения размера иконки ( | [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 | место для хранения 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().
Параметры
pixbuf | объект GdkPixbuf, или | [allow-none] |
Возвращает
новый 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 | имя значка или | [nullable] |
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 | a 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() для получения подробностей.
Параметры
image | a GtkImage | |
filename | имя файла или | [type filename][allow-none] |
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 | имя значка или | [nullable] |
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().
Параметры
image | a GtkImage | |
resource_path | путь к ресурсу или | [allow-none] |
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 | cairo_surface_t или | [nullable] |
С версии: 3.10
gtk_image_set_pixel_size ()
void gtk_image_set_pixel_size (GtkImage *image,gint pixel_size);
Устанавливает размер пикселей для использования с именованными значками. Если размер пикселей установлен в значение != -1, оно используется вместо размера значка, заданного с помощью gtk_image_set_from_icon_name().
Параметры
image | объект 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” char *
Имя файла для загрузки и отображения.
Владелец: GtkImage
Флаги: Чтение / Запись
Значение по умолчанию: NULL
Свойство “gicon”
“gicon” GIcon *
GIcon, отображаемый в GtkImage. Для значков с темой, если тема значков изменится, изображение будет обновлено автоматически.
Владелец: GtkImage
Флаги: Чтение / Запись
С версии: 2.14
Свойство “icon-name”
“icon-name” char *
Имя значка в теме значков. Если тема значков изменится, изображение будет обновлено автоматически.
Владелец: GtkImage
Флаги: Чтение / Запись
Значение по умолчанию: NULL
С версии: 2.6
Свойство “icon-set”
“icon-set” GtkIconSet *
Набор значков для отображения.
GtkImage:icon-set устарел с версии 3.10 и не должен использоваться в новом коде.
Используйте “icon-name” вместо этого.
Владелец: GtkImage
Флаги: Чтение / Запись
Свойство “icon-size”
“icon-size” int
Символический размер для использования стокового значка, набора значков или именованного значка.
Владелец: GtkImage
Флаги: Чтение / Запись
Допустимые значения: >= 0
Значение по умолчанию: 4
Свойство “pixbuf”
“pixbuf” GdkPixbuf *
GdkPixbuf для отображения.
Владелец: GtkImage
Флаги: Чтение / Запись
Свойство “pixbuf-animation”
“pixbuf-animation” GdkPixbufAnimation *
GdkPixbufAnimation для отображения.
Владелец: GtkImage
Флаги: Чтение / Запись
Свойство “pixel-size”
“pixel-size” int
Свойство "pixel-size" может быть использовано для указания фиксированного размера, переопределяющего свойство “icon-size” для изображений типа GTK_IMAGE_ICON_NAME.
Владелец: GtkImage
Флаги: Чтение / Запись
Допустимые значения: >= -1
Значение по умолчанию: -1
С версии: 2.6
Свойство “resource”
“resource” char *
Путь к файлу ресурса для отображения.
Владелец: GtkImage
Флаги: Чтение / Запись
Значение по умолчанию: NULL
С версии: 3.8
Свойство “stock”
“stock” char *
Идентификатор стокового изображения для отображения.
GtkImage:stock устарел с версии 3.10 и не должен использоваться в новом коде.
Используйте “icon-name” вместо этого.
Владелец: GtkImage
Флаги: Чтение / Запись
Значение по умолчанию: NULL
Свойство “storage-type”
“storage-type” GtkImageType
Представление, используемое для данных изображения.
Владелец: GtkImage
Флаги: Чтение
Значение по умолчанию: GTK_IMAGE_EMPTY
Свойство “surface”
“surface” CairoSurface *
cairo_surface_t для отображения.
Владелец: GtkImage
Флаги: Чтение / Запись
Свойство “use-fallback”
“use-fallback” gboolean
Указывает, будет ли используемый значок в GtkImage использовать стандартные имена значков по умолчанию. Значение этого свойства актуально только для изображений типа GTK_IMAGE_ICON_NAME и GTK_IMAGE_GICON.
Владелец: GtkImage
Флаги: Чтение / Запись
Значение по умолчанию: 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.24/GtkImage.html