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)
此代码用于将输入文本框窗口小部件中的值分配给变量Input1。但是,我得到的值是:PY_VAR0而不是Entry1中的文本。
我需要打印输入文本。为什么PY_VAR0出现?
请帮忙。
谢谢。
发布于 2018-09-25 15:05:22
问题是,在用户有机会输入任何内容之前,您将获得条目窗口小部件的值,因此它始终是空字符串。
如果您等到用户输入之后再进行操作,您的代码将按原样正常工作。虽然,我没有看到任何理由使用a,StringVar
因为它只是添加了一个没有实际意义的额外对象。没有理由使用StringVar
带有条目小部件,除非你需要额外的功能StringVar
- 即变量跟踪。
您看到的原因PY_VAR0
是您必须使用该get
方法从实例中获取值StringVar
。将您的陈述更改为print input1.get()
。
发布于 2018-09-25 16:44:30
要获取StringVar
通话内容get()
:
input1.get()
此外,您应该将您绑定StringVar
到Entry
否则StringVar
将不会随Entry
窗口小部件的内容更改:
entry1.config(textvariable=input1)
或者你可以绑定在构造:
input1 = StringVar()
entry1 = tk.Entry(root1, textvariable=input1)
https://stackoverflow.com/questions/-100006156
复制相似问题