我正在尝试将提交到数据输入框的信息放入我的画布标签中。到目前为止,我在标签上的所有内容都是这个。
PY_VAR#
这是我目前的代码。
import tkinter
from tkinter import *
font = ("Times New Roman", 5)
font2 = ("Times New Roman", 10)
font3 = ("Times New Roman", 15)
def getData():
1a.get()
2a.get()
test()
def enterData():
global 1a, 2a
canvas = tkinter.Canvas(root, width=800, height=600)
box1 = Entry(textvariable = 1a).place(x=100, y=200)
box2 = Entry(textvariable = 2a).place(x=300, y=200)
Button(text = "enter data", font = font2, command = getData).place(x=560, y=100)
def test():
global 1a, 2a
1a = StringVar()
2a = StringVar()
root = tkinter.Tk()
canvas = tkinter.Canvas(root, width=800, height=600)
canvas.pack()
Label(root, text = 1a, font = font3).place(x=70, y=400)
enterData()
我也尝试过分配1a和2a,它总是PY_VAR#。
有人能看到我的代码出了什么问题吗?
答案 0 :(得分:1)
您已将text
的{{1}}参数分配给变量 Label
,而不是内容。请改用:
1a
但我不得不说,这段代码有点荒谬。 Label(root, text=1a.get())
和1a
甚至不能成为变量,2a
对于创建GUI来说通常是个坏主意,你做了不必要的操作(函数{{1}完全过时了,你总是在创造新的标签。
答案 1 :(得分:1)
首先,每次点击按钮时都不想创建新的StringVar
,所以将这些创建移到顶部,然后重命名 - 你不能用数字开始变量(不要忘记在1a
函数中更改对2a
和enterData
的引用):
# import tkinter You shouldn't import tkinter in two different ways - get rid of this one...
from tkinter import *
font = ("Times New Roman", 5)
font2 = ("Times New Roman", 10)
font3 = ("Times New Roman", 15)
stringVar1a = StringVar()
stringVar2a = StringVar()
其次,1a.get()
和2a.get()
行什么都不做 - 它们获取条目的内容,但没有对它们进行任何操作。所以你真的不需要单独的getData
和test
函数,但是为了保留你的结构,我会留下它们:
def getData():
test()
第三,当您创建标签时,您不希望将其文本属性设置为StringVar
,您希望将 textvariable 属性设置为{{1 }}:
StringVar