如何在tkinter中读取条目的值

时间:2018-12-31 15:05:02

标签: python tkinter

谁能告诉我,为什么我得到错误“ NoneType”对象没有属性“ get”?

import tkinter as tk
from tkinter import messagebox

class App(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.lab1 = tk.Label(text="Abfahrtsort").grid(row=0, column=0, sticky="w")
        self.start = tk.Entry(self).grid(row=0, column=1)
        self.lab2 = tk.Label(text="Zielort").grid(row=1, column=0, sticky="w")
        self.end = tk.Entry(self).grid(row=1, column=1)
        self.button = tk.Button(self, text="Anzeigen", command=self.on_button).grid(row=2, column=1)

    def on_button(self):
        messagebox.showinfo(self.entry.get())

app = App()
app.mainloop()

1 个答案:

答案 0 :(得分:0)

您的代码中有两个问题。第一个是您的grid()语句。

更改这些:

self.start = tk.Entry(self).grid(row=0, column=1)
self.end = tk.Entry(self).grid(row=1, column=1)

对此:

self.start = tk.Entry(self)
self.start.grid(row=0, column=1)

这:

self.end = tk.Entry(self)
self.end.grid(row=1, column=1)

第二个是您的消息框语句。

更改此:

messagebox.showinfo(self.entry.get())

对此:

messagebox.showinfo(self.start.get())

或者这取决于您要访问的条目:

messagebox.showinfo(self.end.get())

您还需要更正self.end和self.button的缩进量,使其与__init__方法中的其他所有内容都内联。