Python 为什么这只会产生一个没有按钮的白色正方形?

Python 为什么这只会产生一个没有按钮的白色正方形?,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,为什么这只会产生一个没有按钮的白色正方形 import tkinter as tk class Application(tk.Frame): def __init__(self, master): frame = tk.Frame(master) tk.Frame.__init__(self, master) self.PRINT = tk.Button(frame, text = 'Print', fg = 'Red', comm

为什么这只会产生一个没有按钮的白色正方形

import tkinter as tk

class Application(tk.Frame):


    def __init__(self, master):
        frame = tk.Frame(master)
        tk.Frame.__init__(self, master)

        self.PRINT = tk.Button(frame, text = 'Print', fg = 'Red', command = self.Print)
        self.PRINT.pack(side = 'left')


        self.QUIT = tk.Button(frame, text = 'Quit', fg = 'Red', command = self.quit())
        self.QUIT.pack(side = 'left')


    def Print(self):
        print('at least somethings working')


root = tk.Tk()
b = Application(root)
root.mainloop()
尽管我按了按钮并打包了它们?

我还是发现了一些问题

让我们从frame变量开始

据我所知,这真的不需要。您已经创建了一个从框架继承的类。可以保持原样,但需要使用网格管理器将其放置在类框架或根窗口中

我想你应该把它取下来,只需在按钮上使用self

接下来,因为我们使用的是类框架,所以让我们使用网格管理器将该框架放置在根窗口上

为此,我们可以使用
pack()

这会让你明白的

请参阅下面的代码

import tkinter as tk

class Application(tk.Frame):


    def __init__(self, master):
        tk.Frame.__init__(self, master)

        self.PRINT = tk.Button(self, text = 'Print', fg = 'Red', command = self.Print)
        self.PRINT.pack(side = 'left')


        self.QUIT = tk.Button(self, text = 'Quit', fg = 'Red', command = self.quit)
        self.QUIT.pack(side = 'left')


    def Print(self):
        print('at least somethings working')


root = tk.Tk()
b = Application(root).pack()
root.mainloop()
结果:


当心!您有两个框架:应用程序(即框架)和init本地上下文中的“框架”。尝试删除后者并将按钮添加到“self”(这是对应用程序/框架的引用)您的框架不是packedAlso,
command=self.quit()
应该是
command=self.quit
。是的,我看到了,但忘了在代码中更正它。谢谢你指出这一点。