首页 > 解决方案 > 为什么python在tkinter中无法识别我的side = TOP和fill = x属性

问题描述

我在 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”未定义

从侧面=顶部

我收到一条类似的消息,只是 fill=x

标签: pythontkinterpack

解决方案


谢谢杰森

TOP 在 tkinter 模块中声明,您将其作为 tk 导入 - 因此您可以将其作为 tk.TOP 访问。您看到的任何单独使用 TOP 的代码都必须从 tkinter import * 完成,它不加选择地从模块中引入所有定义的名称。– 杰森哈珀

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


推荐阅读