Skip to main content
 首页 » 编程设计

python /Tkinter : Stretch an image horizontally

2025年05月04日14txw1958

是否可以水平拉伸(stretch)图像?

用例:我有一个一像素宽(60 像素高)的图像,我想水平拉伸(stretch)它以填充其父容器。拉伸(stretch)此图像的目的是为相关容器提供渐变背景外观。

这是我尝试但没有成功的方法(渐变图像出现,但只是居中而不是拉伸(stretch)):

import Tkinter as tkinter 
root = tkinter.Tk() 
 
image = tkinter.PhotoImage( file='gradient1.gif' ) 
imgBackground = tkinter.Label( image=image ) 
imgBackground.pack( side='top', fill='x', expand=True ) 
 
root.mainloop() 

请您参考如下方法:

不,没有办法拉伸(stretch)图像来填充容器。但是,您可以检测到小部件何时更改大小并且可以“重新绘制”渐变。使用 Canvas ,并创建到 <Configure> 的绑定(bind)绘制渐变。这听起来很慢,但假设您没有数百个这样的设备,它已经足够快了。