当前位置: 代码迷 >> python >> Python输入框在多个输入框中输入文本
  详细解决方案

Python输入框在多个输入框中输入文本

热度:34   发布时间:2023-07-16 11:16:36.0

我正在制作一个GUI应用程序,其中有4个Entry部分,如果我在一个Entry框中输入文本,则所有Entry框都会获取数据。 我该如何编码,以便仅在单击“输入”框时才应分别输入输入...

码:

from Tkinter import *

def time():
 t1h=int(Ihr.get())
 t1m=int(Imin.get())
 t2h=int(Ohr.get())
 t2m=int(Omin.get())

app = Tk()
app.title("VM")
app.geometry("150x210")
app.resizable(0,0)    

note = Label(app, text="Clock IN Time :")
note.place(x=10, y=10)
Ihr = Entry(app,text="...")
Ihr.place(x=10, y=30,width="30")
Ihr.focus()
note = Label(app, text="::")
note.place(x=43, y=30)
Imin = Entry(app,text="...")
Imin.place(x=60, y=30,width="30")
note = Label(app, text="(hr)")
note.place(x=12, y=50)
note = Label(app, text="(min)")
note.place(x=58, y=50)  
Ihr = Entry(app,text="...")

Imin = Entry(app,text="...")

我怀疑问题出在这两行,尤其是text关键字参数。 乍一看我没有看到的行为text ,但我猜他们的行为有点像textvariable说法。 由于它们都指向同一个“ ...”对象,因此更改一个条目将更改另一个。

不要使用text参数来设置Entries的文本。 请改用.insert方法。

Ihr = Entry(app)
Ihr.insert(0, "...")

Imin = Entry(app)
Imin.insert(0, "...")

更新:

Bryan Oakley确认texttextvariable关键字参数具有相同的效果。 通常,您不应将字符串对象传递给这些参数。 StringVar是最常规的。 您可能对这里使用StringVars感兴趣,因为您可以使用它们的.set方法来设置Entry对象的内容,而不必使用可能更复杂的.insert方法。

Ihr_var = StringVar()
Ihr_var.set("...")
Ihr = Entry(app,text=Ihr_var)

Imin_var = StringVar()
Imin_var.set("...")
Imin = Entry(app,text=Imin_var)