Python tkinter: Was sind die richtigen Werte für die anchor-option in dem Nachrichten widget?
Habe ich gelernt tkinter durch http://www.python-course.eu/tkinter_message_widget.php
Ich erhalte eine Fehlermeldung, wenn ich den Anker mit der option Optionen auf der Website präsentiert. Ich bin gesagt, dass das, NE ist nicht vorhanden, aber NE ist gegeben als "Anker" - option in den obigen link:
NameError: name 'NE' is not defined
Hier ist mein code.
import tkinter
root = tkinter.Tk()
message = ("Whatever you do will be insignificant,"
"but it is very important that you do it.\n"
"(Mahatma Gandhi)")
msg = tkinter.Message(root,text = message, anchor = NE, aspect = 1000,
foreground='red', background='yellow',
highlightcolor='green', highlightthickness=0,
borderwidth=500)
#msg.config(bg='lightgreen', font=('times', 24, 'italic'))
msg.pack()
tkinter.mainloop()
EDIT: ich habe auch versucht, die Eingabe in 'NE' in einfache Anführungszeichen gesetzt und es hat nicht funktioniert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Werte sind der string-Literale "n", "ne", "e", "se", "s", "sw", "w", "nw" oder "center". Fall ist wichtig. Sie repräsentieren die Himmelsrichtungen (Norden, Süden, Osten und Westen)
In deinem Fall bist du mit tkinter Konstanten, die diese Werte enthalten. Aufgrund der Art und Weise, die Sie importieren tkinter, müssen Sie Präfix-diese Konstanten mit den Namen des Moduls. Zum Beispiel
tkinter.NE
.Ich persönlich denke, es ist merkwürdig, zu verwenden, eine Konstante
N
oderNE
festgelegt ist "n" oder "ne". Die Konstante dient keinem anderen Zweck, als die manchmal zu Verwirrung führen, in Fällen wie diesem.Hier ist die kanonische Dokumentation:
Ich glaube, Sie brauchen, um sich zu qualifizieren es mit dem Modul-Namen.
Können Sie auch ein string-literal, aber ich bin mir nicht sicher, dass die dokumentierten Verhalten.
Nur klären, warum der code funktionierte, wenn änderungen vorgenommen wurden, um den Beispiel-code auf die website-link in der Frage.
Nach dem Lesen Antworten von Kevin und Bryan Oakley, erkannte ich, dass der Grund, warum die website hatte NE versus tkinter.NE und es funktionierte, wenn Sie die Anker-option, um den Beispiel-code, ist die Art, wie Sie importiert das tkinter-Modul.
Ich habe gerade gelernt, dass dies vor einer Woche und Daneben Roddy in seiner Antwort hier ('import-Modul' oder 'aus dem Modul importieren'), rät von der Verwendung von
import *
da ist es schwer zu sagen, was für module das code ist aus. Das ist die Verwirrung, die ich hatte.Wenn jemand anderes Probleme mit der Anker-option, versuchen Sie, ihn in die pack-Funktion:
Statt in Nachricht oder config, die komischerweise bei mir nicht funktioniert hatte: