在 Tkinter 的输入框中设置默认值

jen*_*ryb 5 python user-input tkinter widget set

我正在 Python 中使用 Tkinter 创建一个用户输入框。我从这里得到了基本代码:http ://www.python-course.eu/tkinter_entry_widgets.php

其中规定:

from tkinter import *

def show_entry_fields():
   print("First Name: %s\nLast Name: %s" % (e1.get(), e2.get()))

master = Tk()
Label(master, text="First Name").grid(row=0)
Label(master, text="Last Name").grid(row=1)

e1 = Entry(master)
e2 = Entry(master)

e1.grid(row=0, column=1)
e2.grid(row=1, column=1)

Button(master, text='Quit', command=master.quit).grid(row=3, column=0, sticky=W, pady=4)
Button(master, text='Show', command=show_entry_fields).grid(row=3, column=1, sticky=W, pady=4)

mainloop( )
Run Code Online (Sandbox Code Playgroud)

并根据我的目的对其进行了修改。我的问题是在输入中设置默认变量。

我已经查看了所有内容,似乎常见的解决方案是使用 v = Tkinter.StringVar() 和 v.set("Default")。但是,我使用的是整数,所以我将其更改为:

v = Tkinter.IntVar()
e1 = Entry(master)
v.set(pd.value_counts(df['month'].values, sort=False)[1])
Run Code Online (Sandbox Code Playgroud)

在哪里

In [29]: pd.value_counts(df['month'].values, sort=False)[1]
Out[29]: 247
Run Code Online (Sandbox Code Playgroud)

我的代码可以运行,但输入中没有默认值。

Bry*_*ley 7

您可以使用insert条目小部件的方法插入任何您想要的值:

value = pd.value_counts(df['month'].values, sort=False)[1]
e1.insert(0, value)
Run Code Online (Sandbox Code Playgroud)

您还可以使用该属性来关联StringVar或 的实例,尽管大多数时候这只是创建一个您必须跟踪的额外对象。在这两种情况下,您都需要一个函数调用来设置和获取值,因此在这种情况下,这没有任何优势,并且需要一行额外的代码来创建变量。IntVartextvariabletextvariable

v = IntVar()
e1 = Entry(master, text=v)
v.set(value)
Run Code Online (Sandbox Code Playgroud)