Почему при этом появляется только белый квадрат без кнопок? - PullRequest
0 голосов
/ 08 мая 2018

Почему при этом появляется только белый квадрат без кнопок?

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()

хотя я звонил кнопкам и упаковывал их?

1 Ответ

0 голосов
/ 08 мая 2018

Я вижу несколько вопросов.

Давайте начнем с переменной кадра.

Из того, что я вижу, его действительно не нужно. Вы создали класс, который наследуется от фрейма. Вы можете оставить все как есть, но вам нужно будет использовать менеджер сетки, чтобы разместить его либо в рамке класса, либо в корневом окне.

Я думаю, что вы должны удалить его и просто использовать 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...