2017-12-22 5 views
-3

Also mache ich ein Programm in Python und für die Benutzeroberfläche verwende ich Tkinter, die Anwendung scheint gut zu laufen, aber als ich eine Weile darin navigieren, bekomme ich folgendes TclError:TclError: Keine weiteren Menüs können zugewiesen werden

TclError: No more menus can be allocated. 

ich tat etwas Forschung und fand ich heraus, dass es eine Grenze für diese „Menüs“ auf Fenster, aber meine Frage ist, wie kann ich wissen, dass diese Menüs erstellt werden? Wie kann ich sie löschen, wenn ich sie nicht mehr benutze? Ich verwende Methoden zum Löschen von Top-Menüs als "top.destroy()". Aber obwohl ich mehr und mehr Menüs erzeuge und es überläuft den Windows Heap oder was auch immer es ist.

Hier ist der Quellcode für mein Programm: https://github.com/molBR/upgestao Kann jemand helfen? Vielen Dank im Voraus.

+2

Warum generieren Sie mehr und mehr Menüs? Ich kann mir nicht vorstellen, dass ein Programm im schlimmsten Fall mehr als ein Dutzend oder zwei benötigt. Kannst du eine [mcve] erstellen, die uns zeigt, wie du eine absurd große Anzahl von Menüs erstellst? Bitte verlinken Sie nicht zu Code auf einer externen Website. Nimm dir die Zeit, um es auf etwas Kleines zu reduzieren, und füge es direkt in deine Frage ein. –

+0

Code in Frage stellen – furas

+0

Wie viele Optionsmenüs benutzen Sie wirklich? –

Antwort

0

Ich habe den gleichen Fehler beim Erstellen von Auto-ausblenden-Menü. Zuerst erstellte ich automatisch generierte und gelöschte Dummy (leere) Menüleiste, um eine echte Menüleiste zu ersetzen, um sie auszublenden. Also nach mehreren Dutzend Verstecken tkinter starten, um mir diesen Fehler zu zeigen: TclError: No more menus can be allocated.

Die Lösung ist einfach: nicht automatisch erstellen/löschen Menüs.

Erstellen Sie einfach alle benötigten Menüs und speichern Sie sie im Speicher. Löschen Sie sie nicht. Und während der Arbeit Ihres Programms zwischen den Menüs wechseln.

Verwandte Themen