首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象没有属性“mainloop”

对象没有属性“mainloop”
EN

Stack Overflow用户
提问于 2018-07-19 02:54:58
回答 1查看 3.5K关注 0票数 0

我正在编写一个基本的程序来创建和管理任务。我遇到了一个错误,我已经研究过了,但找不到一个有意义的解决方案。我使用root = tk.Tk()并将其传递给一个类。然而,当我用this循环()方法调用这个类时,我会得到这个错误,我不知道为什么要得到它:

AttributeError:'MainApplication‘对象没有属性'mainloop’

以下是我的代码供参考:

代码语言:javascript
复制
 import tkinter as tk


class MainApplication:
    def __init__(self, master):
        self.master = master
        self.frame = tk.Frame(self.master)
        self.entry = tk.Entry(self.frame)
        self.entryButton = tk.Button(self.frame, text="Enter", command = 'create_entry')
        self.titlelabel = tk.Label(self.frame, text="Enter a task and manage the list")
        self.entry.grid(row=1, column=0)
        self.entryButton.grid(row=1, column=1)
        self.titlelabel.grid(row=0, column=0, columnspan=2)
        self.configure_gui()

    def configure_gui(self):
        self.master.geometry("200x600")
        self.master.title("Tasklister 8000")

    def create_entry(self):
        entry = self.entry.get()
        self.newTask = tk.Button(self.frame, text=entry, command = 'delete_entry')
        self.newTask.grid(columnspan=2)

    def delete_entry(self):
        self.newTask.destroy()


def main():
    root = tk.Tk()
    app = MainApplication(root)
    app.mainloop()

if __name__ == '__main__':
    main()

如果根是Tkinter对象,那么我难道不能在我创建的类MainApplication上调用mainloop()吗?

非常感谢对其他文献的任何帮助,甚至任何方向!

EN

回答 1

Stack Overflow用户

发布于 2018-07-19 03:06:36

如果根是Tkinter对象,那么我难道不能在我创建的类MainApplication上调用mainloop()吗?

不是的。root是一个tkinter对象,但app不是。因此,您可以调用root.mainloop(),但不能调用app.mainloop()

当然,您的应用程序有许多tkinter对象(self.masterTkself.frameFrame等等),但这并不意味着它就是一个。如果这并不明显,请考虑以下代码:

代码语言:javascript
复制
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y
pt = Point(2, 3)

您的pt有一些整数,但这并不意味着它是一个整数。你不会期望pt.bit_length()pt + 6float(pt)能工作,对吧?

如果您已经看到类似于您的代码的例子(例如,Effbot书中充满了它们),那么关键的区别在于使MainApplication成为tkinter.Tktkinter.Frame的子类。如果这样做,那么app将是一个tkinter对象( TkFrame)。但你没有。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51413663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档