Python-如何从tkinter小部件获取值并将其分配给变量

kes*_*106 3 python tkinter

from tkinter import *
import tkinter as tk
import pyodbc

root1 = tk.Tk()

label1 = tk.Label(root1, text='product A')
entry1 = tk.Entry(root1)

label1.pack(side = tk.TOP)
entry1.pack()
input1= StringVar()
input1.set(entry1.get())
print (input1)
Run Code Online (Sandbox Code Playgroud)

此代码用于将输入文本框小部件中的值分配给变量Input1。但是,我得到的值是:PY_VAR0,而不是Entry1中的文本。

我需要打印输入文本。为什么会出现PY_VAR0?

请帮忙。

谢谢。

Bry*_*ley 6

问题在于,在用户有机会键入任何内容之前,您已经获得了条目小部件的值,因此它始终是空字符串。

如果您等到用户输入内容后再进行获取,则您的代码将按原样运行。不过,我看不出有任何理由使用a,StringVar因为它只是添加了一个没有实际用途的额外对象。StringVar除非您需要a StringVar可以带给您的额外功能-即变量跟踪,否则没有理由将a 与入口小部件一起使用。

您看到的原因PY_VAR0是因为必须使用get方法从的实例中获取值StringVar。将您的对帐单更改为print input1.get()