python - 如何使用条目小部件重置图像标签的大小?
问题描述
我想在函数中创建图像标签后重置其尺寸,使用在条目小部件中输入的用户定义值。基本上我用“打开文件...”按钮打开图像文件,并允许它通过鼠标移动来调整大小。现在我想创建一个“设置尺寸”按钮,以通过用户输入来重置该图像的尺寸。但是由于图像标签是在函数 display_image 中创建的,有没有办法可以在之后重置它的尺寸?我已经评论了我有问题的部分。我对使用 python 和 tkinter 非常陌生,非常感谢您的帮助和耐心。
def display_image():
f = filedialog.askopenfilename(
title='Choose file',
filetypes=[('png images', '.png'),
('gif images', '.gif'),
('jpeg images', '.jpg')]
)
def resize_image(event):
new_width = event.width
new_height = event.height
image = copy_of_image.resize((new_width, new_height))
img = ImageTk.PhotoImage(image)
label.config(image=img)
label.image = img
image = Image.open(f)
copy_of_image = image.copy()
img = ImageTk.PhotoImage(image)
label = Label(container, image=img)
label.bind('<Configure>', resize_image)
label.pack(fill=BOTH, expand=YES)
def set_dimension():
new_window = Toplevel(box1)
new_window.title('Set Dimension')
Label(new_window, text='width').grid(row=0, column=0)
new_width = Entry(new_window, textvariable=StringVar())
new_width.grid(row=0, column=1)
Label(new_window, text='height').grid(row=0, column=2)
new_height = Entry(new_window, textvariable=StringVar())
new_height.grid(row=0, column=3)
def reset():
img_label.config(width=new_width, height=new_height) #here is the part that I have problem with
Button(new_window, text='Reset', command=reset).grid(row=1, column=3, sticky=E)
Button(box1, text='Open File...', command=display_image).grid(row=0, column=4)
Button(box1, text='Set Dimension', command=set_dimension).grid(row=1, column=4)
Button(box1, text='Save').grid(row=10, column=4)
解决方案
推荐阅读
- python - 输入输入时,我的显示菜单重复多次
- css - 单击项目时,我可以使光标从项目上移开吗?
- javascript - 从 HTML 元素中提取文本并创建对象
- java - Java - 如何在 HTTP GET 请求中设置本地存储值?
- node.js - 如何在 Angular 6 中制作“过滤器”
- ruby - 用 Regexp.Union 扫描如何在 union \b \ix 中使用带有选项的变量?
- r - R DT 包添加尾随零以对齐小数
- c++ - 线程如何更改睡眠时间
- xcode - 当我运行命令 react-native run-ios 时。为什么应用程序不存在?
- fortran - 在fortran中用零填充数组而不使用循环