我有两个带有两个不同命令的按钮。第一个允许我恢复列表中的Entry输入,第二个使我使用此列表作为参数调用函数。但是我看不到该函数的调用结果。
填充参数'a'和'b'的值后,我尝试打印'parameters [0]',但是由于关闭了tk窗口,所以没有输出。因此,我将指令“ root.destroy()”放在第一个按钮调用的函数的末尾,但是通过按下它,tk窗口被破坏了,所以我无法按下第二个按钮。我在第一个按钮的命令功能(即功能“ get”)中删除了“ root.destroy()”,并将其放在“执行”功能(即第二个按钮的命令功能)的末尾。后者必须调用脚本“ tests.py”,运行其唯一的功能“ tests2”,并输出“ parameters [0]”,但我没有任何输出。
这样做,目的是要知道第二个按钮调用的函数“ tests2”是否会知道列表“ parameters”。但是没有输出,我没有答案。
import tkinter as tk
import os
#from tests import tests2
root = tk.Tk()
# create scrolled frame
sf = ScrolledFrame(root, True, True)
sf.pack(fill='both', expand=True) # resize with window
all_entries= []
label=tk.Label(sf.inner, text="a").grid(row=2, sticky='w')
entry=tk.Entry(sf.inner)
entry.grid(row=2, column=1)
all_entries.append(entry)
label=tk.Label(sf.inner, text="b").grid(row=3, sticky='w')
entry=tk.Entry(sf.inner)
entry.grid(row=3, column=1)
all_entries.append(entry)
def get():
global parameters
temp=[float(entry.get()) for entry in all_entries]
parameters=temp
return parameters
def execution():
os.system('tests.py')
root.destroy()
bouton_Valider =tk.Button(sf.inner, text="Valider les paramètres", fg="blue", command=get)
bouton_Valider.grid(row=39, column=1)
bouton_Executer = tk.Button(sf.inner, text="Exécuter le programme", fg="red", command=execution)
bouton_Executer.grid(row=41, column=1)
root.mainloop()
def tests2(parameters):
print(parameters[0])