Python的Tkinter的:什么是在消息控件锚选项中正确的价值观?

问题描述 投票:2回答:4

我已经通过http://www.python-course.eu/tkinter_message_widget.php学习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”打字,也没有工作。

python python-2.7 python-3.x user-interface tkinter
4个回答
4
投票

的值是字符串文字 “N”, “NE”, “E”, “本质上”, “S”, “SW”, “W”, “NW” 或 “中心”。案例是非常重要的。他们代表了指南针的方向(北,南,东,西)

在你的情况你使用包含这些值Tkinter的常量。因为你的方式导入Tkinter的,必须前缀这些常量与模块的名字。例如,tkinter.NE

我个人认为这是奇怪的使用设置“n”或“NE”恒定NNE。恒定供应不超过,有时产生在箱子混乱如此其他目的。

这里是canonical documentation

指定窗口小部件(例如,文本或位图)的信息如何被显示在窗口小部件。必须是值N,NE,E,SE,S,SW,W,NW,或中心中的一个。例如,NW装置显示所述信息,使得其左上角是在窗口小部件的左上角。


2
投票

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

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

你也可以使用一个字符串,但我不知道这是记录的行为。

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

0
投票

只是澄清为什么代码工作进行了更改,在相关网站链接上的示例代码做。

阅读凯文和布莱恩·奥克利的回答后,我意识到,之所以有网站对NE和tkinter.NE它的工作,如果添加锚点选项示例代码,是他们进口的Tkinter模块的方式。

from Tkinter import * #Python 2

from tkinter import * #Python 3

我刚刚得知这一个星期前和马克罗迪在其响应这里('import module' or 'from module import'),鼓励使用import *的,因为它是很难说什么模块的代码的来源。这是我的困惑。


0
投票

如果其他人是否有与锚选项麻烦尽量把它放在包的功能:

msg.pack(anchor = 'w')

取而代之的内部消息或配置很奇怪没有为我工作:

msg.Message(anchor = 'w', ...)
msg.config(anchor = 'w', ...)
© www.soinside.com 2019 - 2024. All rights reserved.