Python打印数字而不是单词

时间:2013-05-30 13:44:53

标签: python python-3.x tkinter

我正在尝试创建一个Tkinter程序来显示你输入的内容,但我在IDLE shell中得到了一堆数字。

我的节目:

from Tkinter import *

class App:
    def __init__(self, master):

    frame  = Frame(master)
    frame.pack()

    self.text_write = Entry(frame)
    self.text_write.pack()

    self.Show = Button(frame, text='Show', command=self.Show)
    self.Show.pack(side=RIGHT)

    def Show(self):
        Label(self.text_write.get())

 root = Tk()

 app = App(root)

 root.mainloop()

但不显示文字。数字出现在我的IDLE shell中,例如:

.4334975024
.4334975600
.4334975672
.4334975816
.4334975960
.4334976104
.4334976248
.4334976392
.4334976536 

请有人解释这个问题以及如何解决它。

2 个答案:

答案 0 :(得分:3)

def Show(self):
    Label(self.text_write.get())

如果您更换"标签"用" print"它的工作原理(如,将值打印到stdout)

代码的作用是创建一个新的标签,其中字符串作为父级(当它想要一个窗口作为父级时),然后不会将该标签附加到任何东西。

您可能想要创建Label对象并将其附加到 init 中的窗口,然后更新Show()中的标签值?

答案 1 :(得分:2)

试试这个:

from Tkinter import *

class App:
    def __init__(self, master):

    frame  = Frame(master)
    frame.pack()

    self.text_write = Entry(frame)
    self.text_write.pack()

    # rename the show button because you gave a member function the same name
    self.show_button = Button(frame, text='Show', command=self.Show)
    self.show_button.pack(side=RIGHT)

    # create label to display entered text
    self.display = Label(frame, text='')
    self.display.pack(side=BOTTOM)

    def Show(self):
        # print text to the standard output
        print self.text_write.get()
        # show text on label
        self.display['text'] = self.text_write.get()

root = Tk()

app = App(root)

root.mainloop()