Ich habe Notebook-Widget der Klasse ttk.Notebook. In diesem Notebook Ich füge viele Tabs:Wie Widget-Objekt von ttk.Notebook Registerkarte erhalten?
notebook.add(child=my_object, text='my tab')
Wie kann ich Registerkarte Objekt erhalten und nicht die Registerkarte Name?
UPDATE 1
So gibt es Wörterbuch Kinder. OK, das bringt das nächste Problem.
Was ich wirklich tun möchte, ist meine Hände auf das Objekt der aktiven Registerkarte in Notebook zu nehmen. Also ich habe folgendes:
aber es sieht hässlich aus. Leider hat der von select() zurückgegebene Widget-Name nicht genau das gleiche Format wie die Widget-Namen in children []. Gibt es eine Methode zur zuverlässigen Übersetzung eines Formats in ein anderes oder split() wird in dieser Situation niemals fehlschlagen?
Dies ist Demo des Problems:
#!/usr/bin/env python3
from tkinter import *
from tkinter.ttk import *
class App(Tk):
def __init__(self):
super().__init__()
notebook = Notebook(self)
notebook.add(child=Frame(notebook), text='tab1')
notebook.add(child=Frame(notebook), text='tab2')
notebook.add(child=Frame(notebook), text='tab3')
notebook.pack()
print('Tabs are: ', notebook.children.keys())
print('Active tab: ', notebook.select())
print(type(notebook.children[notebook.select().split('.')[2]]))
App().mainloop()
Weisen Sie 'my_object' der Variablen zu und verwenden Sie diese Variable. – furas