我试图通过使用类来采用更面向对象的方法,但我似乎得到以下错误。
回溯(最近一次呼叫最后一次):文件" ./ 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()
答案 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 *
。这是命名空间的主题,超出了这个答案的范围。