1 GtkPicture

  1. 内部主要使用的是 GdkPaintable。可以通过实现GdkPaintable,显示各种内容。

  2. 可以填充满整个控件区域。

    alt text

2 函数总结

2.1 设置函数

/**
 * @brief: 图片是否能够收缩显示,如果设置FALSE则显示最小就是图片原始大小。
*/
void
gtk_picture_set_can_shrink (GtkPicture *self,
                            gboolean    can_shrink);

/**
 * @brief: 设置内容(图片)应该如何变化尺寸去适应控件区域去显示
*/
void
gtk_picture_set_content_fit (GtkPicture    *self,
                             GtkContentFit  content_fit);            

/**
 * @brief: 用文本的描述控件显示的内容
 *         暂时没有发现有什么作用(可能在视觉障碍中使用?)
*/
void
gtk_picture_set_alternative_text (GtkPicture *self,
                                  const char *alternative_text)                                      

alt text

3 分析内部使用的GdkPaintable

实际创建的就是 GdkMemoryTexture 对象。

GtkWidget *picture = gtk_picture_new_for_filename ("bird.jpg");

alt text