Spec-Zone.ru › GTK 3.20

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 использовать-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, или 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

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

место для хранения имени значка по умолчанию, или 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

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

место для хранения имени иконки, или 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

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

gtk_image_get_pixel_size ()

gint
gtk_image_get_pixel_size (GtkImage *image);

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

Параметры

image

a 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.20/GtkImage.html

Spec-Zone.ru

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