Nat*_*sta 3 resize image button gtk3
我正在使用 gtk3 并使用以下代码片段将图像放入按钮中。
  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。我不想调整按钮的大小。发生这种情况的任何原因。
提前致谢。
这是正确的行为,正如 @theGtknerd 评论的那样,您应该将图像调整为正确的像素大小。
然而,有几种不同的方法可以获得与您想要的结果类似的结果,例如:加载图像并通过 GdkPixbuf 调整其大小(这将在加载时或之后调整整个图像的大小),通过 subpixbuf 裁剪图像(这将在点 x,y 处获得具有选定宽度和高度的区域。大小为 100x60 的 P(0,0) 就是您想要的)
最简单的方法是在按钮及其子图像“之间”添加一个 GtkLayout,这样按钮(它是一个容器)就不会随着其子图像的大小而调整大小。
我模拟了这两种情况,如下所示:
第一个窗口的行为就像您所要求的那样,第二个窗口的行为就像现在一样。请注意,您将具有填充、边框、水平和垂直扩展以及对齐方式,因此您应该调整这些内容以满足您的需求。