Search on blog:

Tworzenie widgetu w Tkinter

Przykład wykorzystania dziedziczenia z Frame do stworzenia widgetu.
Poniżej własny widget, który składa pola do wprowadzania tekstu Entry oraz pola Label w którym na bieżąco pokazywany jest tekst wpisany w Entry.

Potem ten widget jest wykorzystany wielokrotnie w głównym oknie i widać, że pojawia się wielokrotnie para Label i Entry i każda para działa niezależnie.

import Tkinter as tk


class MyWidget(tk.Frame):

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

        self.text = tk.StringVar()

        self.label = tk.Label(self, textvariable=self.text)
        self.label.pack()

        self.entry = tk.Entry(self, textvariable=self.text)
        self.entry.pack()


class App(tk.Tk):

    def __init__(self):
        tk.Tk.__init__(self)
        MyWidget().pack()
        MyWidget().pack()
        MyWidget().pack()
        MyWidget().pack()
        MyWidget().pack()
        MyWidget().pack()
        MyWidget().pack()

    def run(self):
        self.mainloop()

App().run()
If you like it
Buy a Coffee