gpt4 book ai didi

Python Tkinter - 在 root.destroy() 之后从条目中获取值

转载 作者:行者123 更新时间:2023-11-28 21:19:16 25 4
gpt4 key购买 nike

我创建输入字段,然后按 <Enter>或提交按钮我调用root.destroy() ,但是销毁后如何从 Entry 中获取值(value)?

当我调用 root.close()如果我调用 self.EntryName.get(),我可以从 Entry 获得值(value), 但我如何使用 root.destroy() 做到这一点?

enter image description here

# Python 3.4.1

import io
import requests
import tkinter as tk
from PIL import Image, ImageTk

def get_image():
im = requests.get('http://lorempixel.com/' + str(random.randint(300, 400)) + '/' + str(random.randint(70, 120)) + '/')
return Image.open(io.BytesIO(im.content))


class ImageSelect(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self, master)

master.resizable(width=False, height=False)
master.title('Image manager')
master.iconify = False
master.deiconify = False
master.grab_set = True

image = ImageTk.PhotoImage(get_image())
self.image = tk.Label(image=image)
self.image.image = image
self.image.grid(row=0, columnspan=3)


self.reload = tk.Button(text='Reload').grid(row=1, column=0, sticky='w')
self.path = tk.Entry().grid(row=1, column=1, sticky='we')
self.submit = tk.Button(text='Submit', command=self.close).grid(row=1, column=2, sticky='e')

def close(self):
self.master.destroy()

if __name__ == '__main__':
root = tk.Tk()
app = ImageSelect(master=root)
app.mainloop()

# This code i want execute after windows destroyed.
# This line return this error
# _tkinter.TclError: invalid command name ".57818448"
# print(app.path.get()) # <---- Error

谢谢

最佳答案

创建一个 StringVariable,它将保留条目的值,即使在窗口被销毁后也是如此。

#inside __init__ 
self.pathVar = tk.StringVar()
self.path = tk.Entry(textvariable=self.pathVar)
self.path.grid(row=1, column=1, sticky='we')

#...

if __name__ == '__main__':
root = tk.Tk()
app = ImageSelect(master=root)
app.mainloop()
print(app.pathVar.get())

顺便说一句,不要做 self.path = tk.Entry().grid()。这会将 grid 的结果 None 分配给 self.path。如果您希望 self.path 指向 Entry,您需要像我上面那样将其grid 放在单独的行上。

关于Python Tkinter - 在 root.destroy() 之后从条目中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24959271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com