为什么python无法在tkinter中识别出我的side = TOP和fill = x属性

时间:2019-07-09 13:01:04

标签: python tkinter pack

我在tkinter网格单元中有一个框架。在框架中,我要包装2个标签。

但是,当我尝试用侧面包装或填充时,会出现名称错误,例如

NameError:未定义名称“ TOP”

我已经尝试过在线咨询教程和我的Tkinter书,但仍然看不到错误所在。我尝试使用大写字母,小写字母,并在侧面和填充选项周围加上引号,但仍然不满意。

import tkinter as tk

MAINFONT = "Marcellus SC"
SUBFONT = "Oswald"
TEXT_SIZE = 12
SPACER = 37 #this  is the padding beween cells

root = tk.Tk()

#Other rows have been established

question_1_frm = tk.Frame(border = 1)
question_1_frm.grid(row = 3, column = 2, sticky = "NW")
first_question_lbl = tk.Label(question_1_frm, text = question_1, font = (MAINFONT, TEXT_SIZE), bg = "white", wraplength = 403*scale_factor_x, justify="left")
first_question_lbl.pack()
first_answer_lbl = tk.Label(question_1_frm, font =(MAINFONT,TEXT_SIZE))
first_answer_lbl.pack(side =TOP, fill=X)

root.mainloop()

我希望将first_question_lbl和first_answer_lbl都打包到父框架中,前者放在后者之下,但我一直得到。

NameError:未定义名称“ TOP”

from side = TOP

我也得到了类似的信息,只是fill = x

1 个答案:

答案 0 :(得分:1)

感谢杰森

TOP在tkinter模块中声明,您将其导入为tk-因此您将以tk.TOP的形式对其进行访问。您看到的任何单独使用TOP的代码都必须是从tkinter import *完成的,这会不加选择地从模块中引入所有已定义的名称。 – jasonharper

tk.TOP和tk.X现在可以正常工作。