Python 在GTK中将图像缩放到其父按钮大小?
我有一个GTK布局,HBox左侧有一个小部件决定我想要的最大高度,右侧有一个VBox,包含三个按钮,每个按钮只包含一个图像,不包含文本。图像是GTK库存图标,因此具有库存存储类型 使用expand=True、fill=True包装没有图像的按钮正是我想要的高度——一些任意的小宽度,每个按钮的高度为HBox左半部分的1/3。然而,对于图像,它们要么太高-3*图标大小菜单在许多主题中太高-或者如果我强制按钮的高度要求,它们会被剪裁。我宁愿将它们缩放到父按钮的大小 我是否必须为我正在使用的每个股票图标制作自己的PIXBUF(如果大小发生变化,则重新生成它们)?或者GTK是否可以自动调整图像大小以适合按钮,而不是相反?因为我尝试过的每个主题中的图像都只差几个像素,有没有办法禁用按钮的剪辑 这个应用程序是用PyGTK用Python编写的,但是任何语言的解决方案都值得赞赏Python 在GTK中将图像缩放到其父按钮大小?,python,user-interface,pygtk,gtk,Python,User Interface,Pygtk,Gtk,我有一个GTK布局,HBox左侧有一个小部件决定我想要的最大高度,右侧有一个VBox,包含三个按钮,每个按钮只包含一个图像,不包含文本。图像是GTK库存图标,因此具有库存存储类型 使用expand=True、fill=True包装没有图像的按钮正是我想要的高度——一些任意的小宽度,每个按钮的高度为HBox左半部分的1/3。然而,对于图像,它们要么太高-3*图标大小菜单在许多主题中太高-或者如果我强制按钮的高度要求,它们会被剪裁。我宁愿将它们缩放到父按钮的大小 我是否必须为我正在使用的每个股票图标
(我只是尝试将其设置为图标名存储类型,但其中一个图标是REVERT_TO_SAVED,当我尝试将其强制设置为特定像素高度时,它会变成损坏的股票图像。此外,我不希望强制设置为任何固定的像素高度。)无法自动执行您想要的操作。您可能希望将gtk.Image子类化,并在子类中将pixbuf缩放到小部件的分配大小。这样做的好处是,您将拥有一个可重用的小部件,并且可以让它动态调整图像大小
缺点是你会有一个丑陋的,放大的pixmap。您可能想研究可伸缩矢量图形。我很幸运地使用了SVG文件并对其进行了伸缩,因为在pyGtk程序中很容易合并SVG
img = gtk.gdk.pixbuf_new_from_file(fname)
我要做的是将svg复制到一个临时文件,并修改第一个文件
然后我读到修改过的svg,它将作为一个pixbuf缩放加载,并具有所有alpha通道的优点
请参见这似乎根本不是我想要的-每次用户调整窗口大小时编写图像文件都不好。此外,它似乎与使用pixbuf_new_from_file_at_size.Ooo没有明显区别,谢谢你的提示,我不知道pixbuf_new_from_file_at_size.Ooo。