Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 小部件过大时的Gtk 3_C++_Gtk_Gtk3_Opencv3.0 - Fatal编程技术网

C++ 小部件过大时的Gtk 3

C++ 小部件过大时的Gtk 3,c++,gtk,gtk3,opencv3.0,C++,Gtk,Gtk3,Opencv3.0,我是GTK3.0+的新手,我想知道当图像尺寸太大时人们如何处理这种情况 是否可能有一个固定大小的框架来显示图像(据我所知,容器大小似乎会根据它所持有的小部件大小而变化,gtk_覆盖似乎是可能的,但我不确定是否有其他方法可以做到这一点 如果步骤1是可能的,当图像变得太大时,在固定大小的区域下,当我们在图像周围移动时,我们可以看到图像的不同部分(超出该区域的其他部分不显示),这是什么想法 如果你知道怎么做,这很容易。在C中: GdkPixbuf *pixbuf; GtkWidget *preview

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

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

  • 如果步骤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,如果我们移动一个小部件,它的大小将增加t关上窗户

    后来我切换到gtk_布局(包括gtk_固定的功能),并设置调整,以固定布局的大小


    很抱歉在前面的回答中再次出现混淆!

    谢谢!还有第二个问题,如果我想将图像放大,是否可以将容器的大小固定下来,以便当图像变大时,超出容器的部分不会显示在容器中。(因为通常容器会随着图像而变大。A,可能吧?请为您的请求提供一个用例和代码。在不知道您正在做什么以及您尝试了什么的情况下,很难推荐解决方案。好的,很抱歉造成混淆。例如,我有一个200*200的窗口,添加一个容器,向容器添加一个100*100的图像,如果e移动图像,假设我们将其向右移动,当图像到达窗口的边界时,窗口将随着我移动图像而增长。我想防止容器调整大小。我想知道我是否清楚地表明…哦,看起来滚动窗口是一个很好的解决方案。我尝试一下!谢谢!