我有一个 GTK 布局,HBox 左侧有一个小部件,决定我想要的最大高度,右侧有一个 VBox,包含三个按钮,每个按钮仅包含图像,不包含文本。这些图像是 GTK 库存图标,因此具有库存存储类型。
使用expand=True、fill=True打包没有图像的按钮正是我想要的高度——一些任意的小宽度,以及HBox左半部分高度的1/3。然而,对于图像,它们要么太高 - 3 * ICON_SIZE_MENU 在许多主题中太高 - 或者如果我强制按钮的高度请求,它们就会被剪裁。我宁愿将它们缩放到父按钮的大小。
我是否必须为我正在使用的每个库存图标制作自己的 pixbuf(如果大小发生变化,则重新生成它们)?或者 GTK 可以自动调整图像大小以适合按钮,而不是相反?由于图像与我尝试过的每个主题相距仅几个像素,有没有办法禁用按钮的剪辑?
此应用程序是使用 PyGTK 用 Python 编写的,但我们欢迎任何语言的解决方案。
(我尝试将其设置为图标名称存储类型,但其中一个图标是 REVERT_TO_SAVED,当我尝试将其强制到特定的像素高度时,它变成了损坏的库存图像。另外,我不想强制它到任何固定的像素高度。)
最佳答案
没有办法自动做你想做的事。您可能想要子类化 gtk.Image 并在子类中将 pixbuf 缩放到小部件的分配大小。这样做的优点是您将拥有一个可重复使用的小部件,并且可以让它动态调整图像大小。
缺点是您将得到一个丑陋的、按比例放大的像素图。您可能想研究可缩放矢量图形。
关于python - 在 GTK 中将图像缩放到其父按钮大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1851862/