我如何 return 按下按钮时调用的函数中的变量?
How do i return a variable from a function that is called when a button is pressed?
我有一个简单的 tkinter 应用程序。我想创建一个允许用户插入其组的弹出窗口 window。写入并按下回车按钮后,该值得到验证,如果可以接受,那么我想保存它。 group
的值在按下按钮时“调用”的 save_and_kil
函数中获取。我在按钮参数中指定要调用的命令,所以如何保存组的值以便我可以在 other_function
?
中访问它
import tkinter as tk
class SomeClass:
def __init__(self, root):
self.root = root
self.root.title("App")
self.root.geometry("600x450")
self.groups = ["1", "2", "3", "4", "5"]
self.top_window()
self.group = "nothing"
def top_window(self):
a = tk.Toplevel()
a.geometry('400x150')
a.title('Credentials Window')
def save_and_kil():
group = txt_entry.get()
if group in self.groups:
a.destroy()
txt_label = tk.Label(a, text="please write your group")
txt_entry = tk.Entry(a)
enter_but = tk.Button(a,
text='Enter',
command=save_and_kil)
txt_label.grid(column=0, row=0)
txt_entry.grid(column=1, row=0)
enter_but.grid(column=1, row=1)
# somehow make redefine the value of self.group
def other_function(self):
print(self.group)
pass
roott = tk.Tk()
app = SomeClass(roott)
roott.mainloop()
编辑
添加示例代码:
import tkinter as tk
class SomeClass:
def __init__(self, root):
self.root = root
self.root.title("App")
self.root.geometry("600x450")
self.groups = ["1", "2", "3", "4", "5"]
self.top_window()
self.group = "nothing"
def save_and_kil(self):
self.group = self.txt_entry.get()
if self.group in self.groups:
self.a.destroy()
self.other_function()
def other_function(self):
print(f'self.group: {self.group}')
pass
def top_window(self):
self.a = tk.Toplevel()
self.a.geometry('400x150')
self.a.title('Credentials Window')
self.txt_label = tk.Label(self.a, text="please write your group")
self.txt_entry = tk.Entry(self.a)
self.enter_but = tk.Button(self.a,
text='Enter',
command=self.save_and_kil)
self.txt_label.grid(column=0, row=0)
self.txt_entry.grid(column=1, row=0)
self.enter_but.grid(column=1, row=1)
# somehow make redefine the value of self.group
roott = tk.Tk()
app = SomeClass(roott)
roott.mainloop()
您可以直接将条目设置为 self.group
或将 self.temp_group
保存在 save_and_kil
中并稍后在 other_function
[=15= 中使用它]
save_and_kill
关闭 self
,因此您可以在函数内部设置 self.group
。
def save_and_kil():
self.group = txt_entry.get()
if self.group in self.groups:
a.destroy()
我有一个简单的 tkinter 应用程序。我想创建一个允许用户插入其组的弹出窗口 window。写入并按下回车按钮后,该值得到验证,如果可以接受,那么我想保存它。 group
的值在按下按钮时“调用”的 save_and_kil
函数中获取。我在按钮参数中指定要调用的命令,所以如何保存组的值以便我可以在 other_function
?
import tkinter as tk
class SomeClass:
def __init__(self, root):
self.root = root
self.root.title("App")
self.root.geometry("600x450")
self.groups = ["1", "2", "3", "4", "5"]
self.top_window()
self.group = "nothing"
def top_window(self):
a = tk.Toplevel()
a.geometry('400x150')
a.title('Credentials Window')
def save_and_kil():
group = txt_entry.get()
if group in self.groups:
a.destroy()
txt_label = tk.Label(a, text="please write your group")
txt_entry = tk.Entry(a)
enter_but = tk.Button(a,
text='Enter',
command=save_and_kil)
txt_label.grid(column=0, row=0)
txt_entry.grid(column=1, row=0)
enter_but.grid(column=1, row=1)
# somehow make redefine the value of self.group
def other_function(self):
print(self.group)
pass
roott = tk.Tk()
app = SomeClass(roott)
roott.mainloop()
编辑 添加示例代码:
import tkinter as tk
class SomeClass:
def __init__(self, root):
self.root = root
self.root.title("App")
self.root.geometry("600x450")
self.groups = ["1", "2", "3", "4", "5"]
self.top_window()
self.group = "nothing"
def save_and_kil(self):
self.group = self.txt_entry.get()
if self.group in self.groups:
self.a.destroy()
self.other_function()
def other_function(self):
print(f'self.group: {self.group}')
pass
def top_window(self):
self.a = tk.Toplevel()
self.a.geometry('400x150')
self.a.title('Credentials Window')
self.txt_label = tk.Label(self.a, text="please write your group")
self.txt_entry = tk.Entry(self.a)
self.enter_but = tk.Button(self.a,
text='Enter',
command=self.save_and_kil)
self.txt_label.grid(column=0, row=0)
self.txt_entry.grid(column=1, row=0)
self.enter_but.grid(column=1, row=1)
# somehow make redefine the value of self.group
roott = tk.Tk()
app = SomeClass(roott)
roott.mainloop()
您可以直接将条目设置为 self.group
或将 self.temp_group
保存在 save_and_kil
中并稍后在 other_function
[=15= 中使用它]
save_and_kill
关闭 self
,因此您可以在函数内部设置 self.group
。
def save_and_kil():
self.group = txt_entry.get()
if self.group in self.groups:
a.destroy()