无法 return 来自 Tkinter 输入框的值 - 需要将输入值从一个脚本传递到另一个脚本

Unable to return a value from Tkinter Entry box - need to pass an entry value from one script to another

我正准备拔掉我的头发 - 已经尝试了我能想象的一切来做一些表面上看起来相当简单的事情...

我需要一个输入框,它接收一个变量,该变量被 return 编辑到代码中并且可以在整个脚本中用作变量。我实际上需要导入这个脚本并在另一个脚本的代码中使用它。

目前,我知道提交按钮正在调用 get_data() 函数,因为使用 'print' 会显示输入的密码。但是使用 return,将其 return 传递给父函数,然后 returning 该值并打印主函数的输出 return 没什么。

谢谢

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 来存储密码。 您试图在销毁 window.

后读取 Entry 的数据
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