【问题标题】:How to access Entry field value in root window from Toplevel window?如何从顶层窗口访问根窗口中的条目字段值?
【发布时间】:2022-01-16 13:52:21
【问题描述】:

我有 2 个不同的文件。一个具有根窗口代码,另一个具有顶层窗口代码,该函数由根文件中的按钮调用。


我想在顶级窗口的entry_take 输入字段中插入我在根窗口的email_box 字段中输入的值,但我无法这样做。 (我尝试在第二个文件中导入 email_box 字段,但出现循环导入错误,我无法想出任何其他方法来从 email_box 获取值)

第一个文件代码:

from tkinter import *
from elt2 import window2

root=Tk()

email_box=Entry(root,width=35,borderwidth=2)
email_box.grid(row=0,column=1,pady=(5,0),padx=10)
pass_box=Entry(root,width=35,borderwidth=2)
pass_box.grid(row=1,column=1)

def submitpass():
    if pass_box.get()=="test":
        passshow=Label(root,text=" CORRECT ",background="#2E0063",fg='white')
        passshow.grid(row=3,column=0,columnspan=2,padx=8)
        window2()
    else:
        passshow=Label(root,text="INCORRECT",background="#2E0063",fg='white')
        passshow.grid(row=3,column=0,columnspan=2,padx=8)

checkbtn=Button(root,text="CHECK",command=submitpass)
checkbtn.grid(row=2,column=1,columnspan=2,padx=10,pady=5,ipadx=45)

root.mainloop()

第二个文件代码:

from tkinter import *

def window2():
    root2=Toplevel()
    root2.geometry("250x75")
    entry_take=Entry(root2)
    entry_take.pack()
    root2.mainloop()

【问题讨论】:

  • 为什么不将输入的文本作为参数传递给window2函数?
  • @MennoHölscher 我忘了你可以在不同的文件中传递参数。谢谢!

标签: python tkinter import tkinter-entry


【解决方案1】:

如上面 Menno 所述,调整窗口 2 函数以传递 email_box.get() 允许在窗口之间传递值。

第一个文件代码:

from tkinter import *
from elt2 import window2

root = Tk()

email_box = Entry(root, width=35, borderwidth=2)
email_box.grid(row=0, column=1, pady=(5, 0), padx=10)
pass_box = Entry(root, width=35, borderwidth=2)
pass_box.grid(row=1, column=1)


def submitpass():
    if pass_box.get() == "test":
        passshow = Label(root, text=" CORRECT ", background="#2E0063", fg='white')
        passshow.grid(row=3, column=0, columnspan=2, padx=8)
        window2(email_box.get())
    else:
        passshow = Label(root, text="INCORRECT", background="#2E0063", fg='white')
        passshow.grid(row=3, column=0, columnspan=2, padx=8)


checkbtn = Button(root, text="CHECK", command=submitpass)
checkbtn.grid(row=2, column=1, columnspan=2, padx=10, pady=5, ipadx=45)


root.mainloop()

第二个文件代码:

from tkinter import *


def window2(entry_value):
    root2 = Toplevel()
    root2.geometry("250x75")
    entry_take = Entry(root2)
    entry_take.insert(0, entry_value)
    entry_take.pack()
    root2.mainloop()

【讨论】:

  • 谢谢! (我忘了你可以通过不同的文件传递参数。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 1970-01-01
  • 2010-10-21
相关资源
最近更新 更多