Я вижу несколько вопросов.
Давайте начнем с переменной кадра.
Из того, что я вижу, его действительно не нужно. Вы создали класс, который наследуется от фрейма. Вы можете оставить все как есть, но вам нужно будет использовать менеджер сетки, чтобы разместить его либо в рамке класса, либо в корневом окне.
Я думаю, что вы должны удалить его и просто использовать 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()
Результаты:
![enter image description here](https://i.stack.imgur.com/tCV2j.png)