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 | использовать резервный вариант | Чтение / Запись |
Типы и значения
| структура | 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, а затем подключитесь к сигналам событий на виджете.
Обработка событий нажатия кнопки на GtkImage.
GtkWidget *image; image = gtk_image_new_from_file ("myfile.png");
При обработке событий на виджете учитывайте, что координаты в изображении могут отличаться от координат в виджете из-за настроек выравнивания и отступов на изображении (см. GtkMisc). Самый простой способ решить эту проблему — установить выравнивание по 0.0 (слева/сверху) и установить отступы равными нулю. Тогда начало изображения будет совпадать с началом виджета.
Иногда приложение хочет избежать зависимости от внешних файлов данных, таких как файлы изображений. В 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 | элемент 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 | элемент GtkImage |
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 | место для хранения размера стоковой иконки (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 | элемент GtkImage |
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 | место для хранения размера иконки (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().
Параметры
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 | имя значка | |
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 | the GdkPixbufAnimation |
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 | 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”
“pixbuf” GdkPixbuf *
Объект GdkPixbuf для отображения.
Флаги: Чтение / Запись
Свойство “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
См. также
GdkPixbuf
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.22/GtkImage.html