Fehler in einem minimalen tkSimpleDialog-Beispiel

8

Ich habe ein Python-Codebeispiel im Rosetta-Code ausprobiert - ein Programmierung Chrestomathy Website, wo Lösungen für die gleiche Aufgabe in so vielen verschiedenen Programmiersprachen wie möglich dargestellt werden. Ziel dieser Aufgabe ist die Eingabe einer Zeichenfolge und der Ganzzahl 75000 über die grafische Benutzeroberfläche. Der Code ist unten gezeigt:

%Vor%

Wenn ich jedoch versuche, den Code auszuführen, erhalte ich den folgenden Fehler:

%Vor%

Wo könnte das Problem sein?

Danke

    
engineervix 18.04.2012, 08:00
quelle

2 Antworten

12

Die Fehlermeldung besagt, dass der Dialog ein übergeordnetes Fenster benötigt.

Mit Python 2.x erstellen Sie das Root-Fenster mit:

%Vor%

Um das Hauptfenster auszublenden, wenn Sie es nicht möchten, verwenden Sie:

%Vor%

Weitere Informationen finden Sie in den Python-Tkinter-Dokumenten .

    
agf 18.04.2012, 14:08
quelle
1

Ich habe nie askinteger verwendet, aber nach der Fehlermeldung zu urteilen, sieht es so aus, als ob der Dialog seinen Elternteil kennen muss, aber Sie sagen ihm nicht, was sein Elternteil sein soll. Versuchen Sie, parent=widget hinzuzufügen (wobei "Widget" eine Referenz zu einem anderen Widget ist - normalerweise dem Root-Widget). Ich kann keine Dokumentation finden, die besagt, dass dies erforderlich ist, aber ich nehme an, dass es ist, da alle Tkinter-Widgets außer dem Stammfenster ein Elternteil haben müssen.

Wenn der in Ihrer Frage angezeigte Code der vollständige Code ist, fehlen Ihnen noch einige andere Dinge. Sie müssen eine Instanz der Tk -Klasse erstellen (das "root" -Fenster genannt wird), und Sie müssen die Ereignisschleife starten (obwohl es möglich ist, dass der Dialog seine eigene Ereignisschleife ausführt, so dass Sie vielleicht OK sind Sie brauchen, ist der einzige Dialog).

    
Bryan Oakley 18.04.2012 10:47
quelle

Tags und Links