当小部件太大时,Gtk 3

Gtk 3 when widget is too large

本文关键字:Gtk 小部      更新时间:2023-10-16

我是gtk 3.0 +的新手,我想知道当图像尺寸太大时,人们如何处理这种情况。

  1. 是否可以有一个固定大小的框架来显示图像(据我所知,似乎容器大小会根据它所持有的小部件大小而变化,gtk_overlay似乎是可能的,但我不确定是否有其他方法可以做到这一点

  2. 如果步骤1是可能的,当图像变得太大时,是什么想法,在固定大小的区域内,当我们在图像周围移动时,我们可以看到图像的不同部分(超出该区域的其他部分没有显示

当你知道如何做时,这很容易。在 C 语言中:

GdkPixbuf *pixbuf;
GtkWidget *preview_image;
preview_image = gtk_image_new ();
pixbuf = gdk_pixbuf_new_from_file_at_scale (file_uri, 
                                            128, 
                                            128, 
                                            TRUE, NULL);
gtk_image_set_from_pixbuf (GTK_IMAGE(preview_image), pixbuf);

Pixbuf 文档和图像文档

基本上,您不能直接从文件中将图像放入任何类型的滚动"窗口"中。相反,将文件加载到 pixbuf 中,然后将 pixbuf 加载到图像中,所有大小调整都应自动处理。

所以我尝试了滚动视图以外的其他东西,我使用的是gtk_fixed,如果我们将小部件移动到窗口外,它的大小会增加。

我后来切换到gtk_layout(其中包括gtk_fixed具有的功能(,并设置了调整,以固定布局的大小。

很抱歉在之前的回答中再次出现混乱!