Spec-Zone.ru › GTK 3.22

GtkImage

GtkImage — Виджет для отображения изображения

Функции

void gtk_image_get_icon_set ()
GdkPixbuf * gtk_image_get_pixbuf ()
void gtk_image_get_stock ()
GdkPixbufAnimation * gtk_image_get_animation ()
void gtk_image_get_icon_name ()
void gtk_image_get_gicon ()
GtkImageType gtk_image_get_storage_type ()
GtkWidget * gtk_image_new_from_file ()
GtkWidget * gtk_image_new_from_icon_set ()
GtkWidget * gtk_image_new_from_pixbuf ()
GtkWidget * gtk_image_new_from_stock ()
GtkWidget * gtk_image_new_from_animation ()
GtkWidget * gtk_image_new_from_icon_name ()
GtkWidget * gtk_image_new_from_gicon ()
GtkWidget * gtk_image_new_from_resource ()
GtkWidget * gtk_image_new_from_surface ()
void gtk_image_set_from_file ()
void gtk_image_set_from_icon_set ()
void gtk_image_set_from_pixbuf ()
void gtk_image_set_from_stock ()
void gtk_image_set_from_animation ()
void gtk_image_set_from_icon_name ()
void gtk_image_set_from_gicon ()
void gtk_image_set_from_resource ()
void gtk_image_set_from_surface ()
void gtk_image_clear ()
GtkWidget * gtk_image_new ()
void gtk_image_set_pixel_size ()
gint gtk_image_get_pixel_size ()

Свойства

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 или NULL.

[out][transfer none][allow-none]

size

место для хранения размера иконки (GtkIconSize) или NULL.

[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

место для хранения имени стоковой иконки или NULL.

[out][transfer none][allow-none]

size

место для хранения размера стоковой иконки (GtkIconSize) или NULL.

[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

место для хранения имени иконки, или NULL.

[out][transfer none][allow-none]

size

место для хранения размера иконки (GtkIconSize) или NULL.

[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, или NULL.

[out][transfer none][allow-none]

size

место для хранения размера значка (GtkIconSize), или NULL.

[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, или NULL.

[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 или NULL.

[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

GtkImage

filename

имя файла или NULL.

[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

a GtkIconSet

size

размер значка (GtkIconSize).

[type int]

gtk_image_set_from_pixbuf ()

void
gtk_image_set_from_pixbuf (GtkImage *image,
                           GdkPixbuf *pixbuf);

См. gtk_image_new_from_pixbuf() для подробностей.

Параметры

image

a GtkImage

pixbuf

a GdkPixbuf или NULL.

[allow-none]

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() для подробностей.

Параметры

image

a GtkImage

resource_path

путь к ресурсу или NULL.

[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

С: 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

gtk_image_get_pixel_size ()

gint
gtk_image_get_pixel_size (GtkImage *image);

Получение размера пикселей, используемых для именованных значков.

Параметры

image

объект GtkImage

Возвращаемое значение

размер пикселей, используемых для именованных значков.

С версии: 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API