Tkinter:消息小部件中锚点选项的正确值是多少?

新手上路,请多包涵

我一直在通过 Python Courses and Tutorials 的 Tkinter 中的 Message 小部件 学习 tkinter。

当我使用网站上提供的选项添加锚点选项时,我不断收到错误消息。我被告知 NE 不存在,但 NE 在上面的链接中作为锚选项给出:

 NameError: name 'NE' is not defined

这是我的代码。

 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()

编辑: 我还尝试在 'NE' 中输入单引号,但没有成功。

原文由 heretoinfinity 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 362
2 个回答

值是字符串文字“n”、“ne”、“e”、“se”、“s”、“sw”、“w”、“nw”或“center”。案例很重要。它们代表指南针的方向(北、南、东和西)

在您的情况下,您使用的是包含这些值的 tkinter 常量。由于导入 tkinter 的方式,您必须在这些常量前加上模块名称。例如, tkinter.NE

我个人认为使用常量 NNE 设置为“n”或“ne”是很奇怪的。除了在这种情况下有时会造成混淆之外,常量没有任何用处。

这是 规范文档

指定小部件中的信息(例如文本或位图)如何在小部件中显示。必须是值 n、ne、e、se、s、sw、w、nw 或 center 之一。例如,nw 表示显示信息,使其左上角位于小部件的左上角。

原文由 Bryan Oakley 发布,翻译遵循 CC BY-SA 3.0 许可协议

我认为你需要用模块名称来限定它。

 msg = tkinter.Message(root,text = message, anchor = tkinter.NE, ...

您也可以使用字符串文字,但我不确定这是记录在案的行为。

 msg = tkinter.Message(root,text = message, anchor = "ne", ...

原文由 Kevin 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题