Получить окно tkinter, которое вызвало событие? - PullRequest
0 голосов
/ 17 апреля 2020

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

Я написал небольшую программу, в которой в главном окне есть кнопка, открывающая другое окно, и каждое новое окно получает привязку для метода resize, который в данный момент печатает высоту и ширину окна. В основном проекте верхний уровень используется в качестве индекса для списков для извлечения информации для этого определенного окна c, поэтому было бы идеально иметь возможность также получать верхний уровень. Возможно ли это прямо или косвенно?

import tkinter as tk 

class MyApp(tk.Frame):
    def __init__(self, master = None):
        self.main() 
        tk.Frame.__init__(self, master) 

    def main(self):
        btn = tk.Button(root, text="New Window", command=self.neues_fenster)
        btn.grid(row=0, column = 0)
    def neues_fenster(self):
        top = tk.Toplevel() 
        top.title("Some Window")   
        top.minsize(width = 150, height = 150) 
        top.bind("<Configure>", self.resize) 

    def resize(self, event):
        print("width", event.width, "height", event.height)

if __name__=="__main__":            
    root = tk.Tk()
    myapp = MyApp(master = root)
    myapp.mainloop()    

1 Ответ

1 голос
/ 17 апреля 2020

В документе effbot . Вы можете использовать event.widget для получения виджета. (Это также нормально, даже если он имеет высокий уровень).

Все возможные атрибуты события: enter image description here

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