如何将来自Entrybox的输入放入Tkinter中的标签?

时间:2014-09-07 19:16:03

标签: python python-3.x tkinter python-3.3

我正在尝试将提交到数据输入框的信息放入我的画布标签中。到目前为止,我在标签上的所有内容都是这个。

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#。

有人能看到我的代码出了什么问题吗?

2 个答案:

答案 0 :(得分:1)

您已将text的{​​{1}}参数分配给变量 Label,而不是内容。请改用:

1a

但我不得不说,这段代码有点荒谬。 Label(root, text=1a.get()) 1a甚至不能成为变量,2a对于创建GUI来说通常是个坏主意,你做了不必要的操作(函数{{1}完全过时了,你总是在创造新的标签。

答案 1 :(得分:1)

首先,每次点击按钮时都不想创建新的StringVar,所以将这些创建移到顶部,然后重命名 - 你不能用数字开始变量(不要忘记在1a函数中更改对2aenterData的引用):

#  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()行什么都不做 - 它们获取条目的内容,但没有对它们进行任何操作。所以你真的不需要单独的getDatatest函数,但是为了保留你的结构,我会留下它们:

def getData():
    test()

第三,当您创建标签时,您不希望将其文本属性设置为StringVar,您希望将 textvariable 属性设置为{{1 }}:

StringVar