当widget太大时Gtk 3

时间:2018-04-04 19:14:53

标签: c++ gtk gtk3 opencv3.0

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

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

  2. 如果第1步是可能的,当图像变得太大时,在固定尺寸区域下,当我们在图像周围移动时,我们可以看到图像的不同部分(其他部分是超出该区域未显示

2 个答案:

答案 0 :(得分: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 docs和图片docs

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

答案 1 :(得分:0)

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

我稍后切换到gtk_layout(包括gtk_fixed的功能),并设置调整,以使布局的大小固定。

对于之前的回答中再次出现混淆感到抱歉!