首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python-如何从tkinter小部件获取值并将其分配给变量

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

Stack Overflow用户
提问于 2018-09-25 06:50:00
回答 2查看 0关注 0票数 0
代码语言:javascript
复制
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出现?

请帮忙。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-09-25 15:05:22

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

如果您等到用户输入之后再进行操作,您的代码将按原样正常工作。虽然,我没有看到任何理由使用a,StringVar因为它只是添加了一个没有实际意义的额外对象。没有理由使用StringVar带有条目小部件,除非你需要额外的功能StringVar- 即变量跟踪。

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

票数 0
EN

Stack Overflow用户

发布于 2018-09-25 16:44:30

要获取StringVar通话内容get()

代码语言:javascript
复制
input1.get()

此外,您应该将您绑定StringVarEntry否则StringVar将不会随Entry窗口小部件的内容更改:

代码语言:javascript
复制
entry1.config(textvariable=input1) 

或者你可以绑定在构造:

代码语言:javascript
复制
input1 = StringVar()
entry1 = tk.Entry(root1, textvariable=input1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档