Prosty przykład komunikacji między oknem rodzica i potomka w Tkinter
To jest "przedruk" mojej wypowiedzi na polskim forum Pythona http://pl.python.org/forum/index.php?topic=4366.msg18688#msg18688
Przeróbka poprzedniego przykładu - teraz przycisk w oknie Child
zmienia napis na przycisku w oknie Main
dzięki temu, że rodzic
przekazuje self
do dziecka. Dodatkowo dziecko wywołuje funkcje
onButton()
należącą do rodzica.
import Tkinter as tk
#----------------------------------------------------------------------
class Main(tk.Tk): # dziedziczenie po klasie tk.Tk
def __init__(self):
tk.Tk.__init__(self) # wywolanie konstruktora klasy tk.Tk
self.title("Main") # wewnetrzny dostep do wlasnosci okna
self.button = tk.Button(self, text="Otworz okno Child z okna Main", command=self.onButton)
self.button.grid()
def onButton(self):
self.child = Child(self) # przekazanie okna jako rodzica
def run(self):
self.mainloop()
#----------------------------------------------------------------------
class Child(tk.Toplevel): # dziedziczenie po klasie tk.Toplevel
def __init__(self, parent):
self.parent = parent
tk.Toplevel.__init__(self, parent) # wywolanie konstruktora klasy tk.Toplevel
self.title("Child") # wewnetrzny dostep do wlasnosci okna
tk.Button(self, text="Zamien tekst na przycisku w oknie Main", command=self.onButton).grid()
def onButton(self):
self.parent.button['text'] = 'Nowy tekst na przycisku rodzica'
self.parent.onButton()
#----------------------------------------------------------------------
glowne = Main()
glowne.title("Glowne") # zewnetrzny dostep do wlasnosci okna
glowne.run()
If you like it
Buy a Coffee
Buy a Coffee