Python 无法从Tkinter输入框返回值-需要将输入值从一个脚本传递到另一个脚本
我正准备把我的头发拔出来-我已经尝试了我能想象到的一切,做一些表面上看起来相当简单的事情 我需要有一个输入框,它接收一个变量,返回到代码中,可以在整个脚本中用作变量。我实际上需要导入这个脚本并在另一个脚本的代码中使用它 目前,我知道Submit按钮正在调用get_data()函数,因为使用“print”显示输入的密码。但是使用return,将其返回到父函数,然后返回该值并打印主函数的输出,不会返回任何结果 谢谢Python 无法从Tkinter输入框返回值-需要将输入值从一个脚本传递到另一个脚本,python,python-3.x,tkinter,tkinter-entry,Python,Python 3.x,Tkinter,Tkinter Entry,我正准备把我的头发拔出来-我已经尝试了我能想象到的一切,做一些表面上看起来相当简单的事情 我需要有一个输入框,它接收一个变量,返回到代码中,可以在整个脚本中用作变量。我实际上需要导入这个脚本并在另一个脚本的代码中使用它 目前,我知道Submit按钮正在调用get_data()函数,因为使用“print”显示输入的密码。但是使用return,将其返回到父函数,然后返回该值并打印主函数的输出,不会返回任何结果 谢谢 from tkinter import * def get_params():
from tkinter import *
def get_params():
def get_data():
pw = pwentry_enter.get()
return pw
window = Tk()
headFrame = Frame(window)
headFrame.grid(row=0, pady=6)
header = Label(headFrame, text="Input Password", font=(f1, 20))
header.grid(column=0, row=0, columnspan=2, sticky="w")
mainFrame = Frame(window, bg="#1B2230")
mainFrame.grid(row=1, pady=6)
raw_password = StringVar()
pwentry_enter=Entry(mainFrame, width=30, font=(f2,10), show="*", textvariable=raw_password)
pwentry_enter.pack()
btnFrame = Frame(window)
btnFrame.grid(row=2, pady=6)
submit_btn = Button(btnFrame, text='Submit', command=get_data, width=10, bg="#DB4158", fg="black", font=(f2, 20))
submit_btn.grid(column=1, row=0)
quit_btn = Button(btnFrame, text='Quit', command=window.destroy, width=10, bg="#DB4158", fg="black", font=(f2, 20))
quit_btn.grid(column=0, row=0)
window.mainloop()
a = get_data()
return a
不要在get_data()中添加return,在单击提交按钮时使用全局变量存储密码,在按下退出按钮时使用return。 您试图在销毁窗口后读取条目的数据
from tkinter import *
pw = ''
def get_params():
global pw
def get_data():
global pw
pw = pwentry_enter.get()
window = Tk()
headFrame = Frame(window)
headFrame.grid(row=0, pady=6)
header = Label(headFrame, text="Input Password", font=(f1, 20))
header.grid(column=0, row=0, columnspan=2, sticky="w")
mainFrame = Frame(window, bg="#1B2230")
mainFrame.grid(row=1, pady=6)
raw_password = StringVar()
pwentry_enter=Entry(mainFrame, width=30, font=(f2,10), show="*", textvariable=raw_password)
pwentry_enter.pack()
btnFrame = Frame(window)
btnFrame.grid(row=2, pady=6)
submit_btn = Button(btnFrame, text='Submit', command=get_data, width=10, bg="#DB4158", fg="black", font=(f2, 20))
submit_btn.grid(column=1, row=0)
quit_btn = Button(btnFrame, text='Quit', command=window.destroy, width=10, bg="#DB4158", fg="black", font=(f2, 20))
quit_btn.grid(column=0, row=0)
window.mainloop()
return pw
你能告诉我你在哪一行打印密码吗
a=get_data()
将在销毁窗口后执行。如果我将“return pw”更改为print(pw),并且如果我在最后打印(get_params()),则会输出密码。这是打印,因为您在单击submit按钮时调用函数。确实,但我需要返回密码,以便将其传递给另一个脚本。我无法在不打印的情况下以任何方式操作或显示它,这对我没有多大帮助。请不要在get_data()
中添加return,并在单击提交按钮时使用全局变量存储密码,在按下退出按钮时使用return。请参考下面的代码,它可以完美地工作-非常感谢!这是因为缺少全局声明?不仅仅是因为全局声明,您还试图在破坏窗口后读取条目数据。不知道为什么在您执行程序时它没有导致错误如果它包含您添加、删除或更改的内容的描述,这个答案会更好。否则,我们必须逐行和逐字符地比较代码,以查看您所做的更改。