Python/Tkinter:如何水平拉伸图像?

2 投票
1 回答
1987 浏览
提问于 2025-04-16 06:28

有没有办法把一张图片横向拉伸呢?

使用场景:我有一张宽度为1像素(高度为60像素)的图片,我想把它横向拉伸,填满它的父容器。拉伸这张图片的目的是为了让这个容器看起来像有渐变背景。

这是我尝试过但没有成功的方法(渐变图片显示出来了,但只是居中,而不是拉伸):

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()

1 个回答

1

不,没办法把图片拉伸到填满容器。不过,你可以检测到一个小部件(widget)大小变化的时机,然后“重新绘制”渐变效果。你可以使用一个画布,并创建一个和<Configure>绑定,这样就能绘制出渐变效果。听起来可能有点慢,但只要你不同时处理几百个,这样的速度其实是足够快的。

撰写回答