Tkinter名称" X"未定义错误。

时间:2017-12-06 17:45:02

标签: python tkinter

我试图通过使用类来采用更面向对象的方法,但我似乎得到以下错误。

  

回溯(最近一次呼叫最后一次):文件" ./ Main.py",第17行,在          Main =菜单(根)文件" ./ Main.py",第11行, init       self.F1.pack(fill = X)NameError:全局名称' X'未定义

以下是我要编译的代码,我已将其分解为一个简单的代码段,以显示我遇到的错误:

#!/usr/bin/python

import Tkinter as tk # Python 2 import

class Menu:
    def __init__(self, parent):
        self.root = parent
        self.root.geometry("800x400")
        self.root.title("Image Compression")
        self.F1 = tk.Frame(self.root, bg="black")
        self.F1.pack(fill=X)

if __name__ == "__main__":
    root = tk.Tk()  
    Main = Menu(root)
    root.mainloop()

1 个答案:

答案 0 :(得分:1)

你的

firebase-query

应该是

self.F1.pack(fill=X)

并且您还应添加self.F1.pack(fill=tk.X) 以使填充实际起作用。 Tkinter.X和Tkinter.Y以及Tkinter.BOTH是在Tkinter模块中定义的常量(字符串)。如果没有expand=True,则您尝试将 X 作为变量进行访问。 你的行应该是

Tkinter.

做你想做的事。

哦,还有一个事后的想法......你可能在想,"嘿!我之前见过.pack(fill = X)工作!"

时会出现这种情况
self.F1.pack(fill=tk.X, expand=True)

上面的参考声明。然后,在这种情况下, X 将被发现来自Tkinter,但不需要前导from Tkinter import * 。这是命名空间的主题,超出了这个答案的范围。