【问题标题】:gtk_image in a gtk_button resizes the button in GTK3gtk_button 中的 gtk_image 调整 GTK3 中按钮的大小
【发布时间】:2017-06-02 13:45:04
【问题描述】:

我正在使用 gtk3 并使用以下代码 sn-p 将图像放入按钮中。

  GtkWidget *button1 = gtk_button_new();
  gtk_widget_set_size_request (button1, 100, 60);
  gtk_fixed_put (GTK_FIXED (wfixed), button1, 20, 30);

  GtkWidget *img = gtk_image_new_from_file("handset-release.png");
  gtk_container_add (GTK_CONTAINER (button1), img);

问题是按钮不再是 100x60,而是调整大小以适应现在更大的图像。 这在 gtk2 中没有发生,其中图像会被裁剪并且按钮仍将保持 100x60。 我不希望按钮调整大小。 发生这种情况的任何原因。

提前致谢。

【问题讨论】:

  • 对我来说,在按钮中完全显示图像是有意义的。为什么不先裁剪图像本身,然后再将其打包到按钮中?

标签: image button resize gtk3


【解决方案1】:

这是正确的行为,正如@theGtknerd 评论的那样,您应该将图像调整为正确的像素大小。

但是,有几种不同的方法可以获得与您想要的结果相似的结果,例如:加载图像并通过 GdkPixbuf 调整其大小(这将在加载时或之后调整整个图像的大小),通过subpixbuf(它将在 x,y 点获得一个具有选定宽度和高度的区域。大小为 100x60 的 P(0,0) 是你想要的)

最简单的方法是在按钮和它的图像子“之间”添加一个 GtkLayout,这样按钮(它是一个容器)就不会随着它的子大小而调整大小。

我已经模拟了这两种情况,如下所示:

第一个窗口的行为与您的请求相同,第二个窗口的行为与现在相同。 请注意,您将拥有内边距、边框、水平和垂直扩展和对齐方式,因此您应该调整这些以满足您的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-06
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 2016-04-25
    相关资源
    最近更新 更多