0

我正在尝试制作一个 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 

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

4

2 回答 2

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

如果将“标签”替换为“打印”,它会起作用(如将值打印到标准输出)

代码按原样执行的操作是创建一个以字符串为父级的新标签(当它想要一个窗口作为父级时),然后不将该标签附加到任何东西上。

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

于 2013-05-30T14:12:51.400 回答
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()
于 2013-05-30T16:54:47.830 回答