Die aktuell ausgewählte Registerkarte von Ttk Notebook finden

8

Ich habe ein Ttk Notebook Widget mit 8 Frames - also 8 Tabs. Jeder Rahmen enthält ein Text-Widget. Ich habe eine Schaltfläche außerhalb des Notizbuch-Widgets, und ich möchte Text in das aktuelle Tab-Text-Widget einfügen, wenn diese Schaltfläche gedrückt wird.

Dies würde erfordern, herauszufinden, welches Widget im Notebook derzeit ausgewählt ist, aber ich kann nicht finden, wie dies zu tun ist. Wie würde ich den aktuell ausgewählten Tab finden?

Alternativ, wie kann ich implementieren, was ich will?

Wenn es hilft, hier ist der Code für mein Notebook:

%Vor%     
Matthew 22.12.2012, 07:28
quelle

4 Antworten

15

Sie können die ausgewählte Registerkarte über die Methode select abrufen. Diese Methode gibt jedoch eine tab_id zurück, die nicht so nützlich ist wie sie ist. index wandle es in die Nummer der ausgewählten Registerkarte um.

%Vor%

Beachten Sie, dass Sie mit tab

auch mehr Informationen über die ausgewählte Registerkarte erhalten können %Vor%

Sie bei Notebook-Referenzdokumentation aussehen: Ссылка

    
FabienAndre 23.12.2012, 16:43
quelle
5

Sie können den aktuell ausgewählten Tab mit dem "current" Schlüsselwort erhalten:

%Vor%

Überprüfen Sie diese Website: Ссылка 24.2.5.3. Tab-IDs

    
bcatets 04.01.2017 06:03
quelle
1

Ich bin überhaupt kein Experte, hoffe aber, dass ich mit "frischen Augen" helfen kann. Ich kann mir vorstellen, dass es etwas mit

zu tun hat %Vor%

Ich hoffe, es funktioniert oder bringt Sie in die richtige Richtung.

Bitte zögern Sie nicht zu bearbeiten, da ich ziemlich neu hier bin und mit Python: -)

    
Evilunclebill 23.12.2012 15:12
quelle
1

Es gibt zwei einfache Möglichkeiten zu sehen, welche Registerkarte ausgewählt ist:

%Vor%

und

%Vor%

Mit der Methode .select() kann auch über nb.select(tabId) ausgewählt werden, welche Registerkarte gerade aktiv ist. Ohne arg wird die tabId (in "name" -Form) der aktuellen Auswahl zurückgegeben.

Das .index(tabId) konvertiert eine tabId in einen numerischen Index. Es kann auch den String "end" annehmen, der die Anzahl der Tabs zurückgibt. Also, nb.index(tkinter.END) ist wie eine len() -Methode für ein Notizbuch-Widget.

Wenn keine Registerkarten vorhanden sind, gibt .select() eine leere Zeichenfolge zurück, aber .index('current') löst eine Ausnahme aus. Also, wenn Sie den Index wollen, würde ich sagen

%Vor%

ist der beste Weg zu gehen.

In Ihrem speziellen Fall möchten Sie wahrscheinlich den Namen des aktuellen Notizbuch-Tabs abrufen und diesen Namen dann zur Manipulation in das eigentliche untergeordnete Text-Widget über die Methode nametowidget() konvertieren. Also ...

%Vor%

Die Methode nametowidget(name) ordnet dem tatsächlichen Widget einen Tkinter-Namen zu. Es ist eine Methode, die von jedem tatsächlichen Widget aufgerufen werden kann.

    
Gary02127 27.12.2017 15:05
quelle

Tags und Links