Funktion in ttk.Notebook Tab aufrufen

Fragen zu Tkinter.
Antworten
Benutzeravatar
Fire Spike
User
Beiträge: 228
Registriert: Montag 13. Mai 2019, 16:05
Wohnort: Erde

Sonntag 28. Juni 2020, 13:11

Ich habe ein Programm mit einer GUI die auf ttk.Notebook basiert.
Wie kann ich jetzt eine Methode von einem Tab in dem Notebook aufrufen?
Unten ist mal ein Beispiel.
Ich versuche jetzt die mache_etwas aufzurufen.
Könnt ihr mit helfen.
LG Fire Spike

Code: Alles auswählen

import tkinter as tk
from tkinter import ttk

class Tab(ttk.Frame):
    def __init__(self, master):
        super().__init__(master)
        self.entry = tk.Entry(self)
        self.entry.pack()
        
    def mache_etwas(self):
        print("!")
        
def main():
    root = tk.Tk()
    root.title("Beispiel")
    root_tab = ttk.Notebook(root)
    tab1 = Tab(root_tab)
    tab2 = Tab(root_tab)
    root_tab.add(tab1, text="Beispiel1")
    root_tab.add(tab2, text="Beispiel2")
    root_tab.pack()
    root.mainloop()

if __name__ == "__main__":
    main()
Benutzeravatar
__blackjack__
User
Beiträge: 6366
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Sonntag 28. Juni 2020, 17:37

@Fire Spike: Was hat denn das mit `ttk.Notebook` zu tun? Das hat ja nicht mal was mit GUIs zu tun. Man ruft halt die Methode auf. ``tab1.mache_etwas()`` oder ``tab2.mache_etwas()`` in der `main()`-Funktion nach dem das jeweilige Objekt erzeugt und an den Namen gebunden wurde.
long long ago; /* in a galaxy far far away */
Antworten