gtk_image 在 gtk_button 中调整 GTK3 中的按钮大小

gtk_image in a gtk_button resizes the button in 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 中没有发生,在 gtk2 中图像会被裁剪并且按钮仍将保持 100x60。 我不希望按钮调整大小。 发生这种情况的任何原因。

提前致谢。

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

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

最简单的方法是添加一个 GtkLayout "between" 按钮及其图像子项,这样按钮(它是一个容器)就不会随着其子项的大小而调整大小。

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

第一个 window 的行为与您要求的一样,第二个与现在一样。 请注意,您将有填充、边框、水平和垂直扩展和对齐方式,因此您应该调整这些以满足您的需要。