类在python中作为模块调用时如何继承tk.frames
我是一个类在python中作为模块调用时如何继承tk.frames,python,tkinter,module,class-instance-variables,Python,Tkinter,Module,Class Instance Variables,我是一个tk新手,在导入类和让它们继承框架时遇到了麻烦。如果我将所有代码堆叠在一个文件中,它就会工作。类似于(我在Github上发现了这个,抱歉没有归属) 我得到了错误 File "modules\clock\Clock.py", line 8, in <module> class Clock(Frame): NameError: name 'Frame' is not defined 文件“modules\clock\clock.py”,第8行,在 班级时钟(帧):
tk
新手,在导入类和让它们继承框架时遇到了麻烦。如果我将所有代码堆叠在一个文件中,它就会工作。类似于(我在Github上发现了这个,抱歉没有归属)
我得到了错误
File "modules\clock\Clock.py", line 8, in <module>
class Clock(Frame):
NameError: name 'Frame' is not defined
文件“modules\clock\clock.py”,第8行,在
班级时钟(帧):
NameError:未定义名称“Frame”
如何设置代码,以便将代码分解为模块并传递tk.Frame 你把tkinter import Frame的
放在Clock.py文件的顶部了吗?@j_4321当我这样做的时候,我得到了一个self.Clock=Clock(self.topFrame)TypeError:“module”对象不可调用
在我实例化时钟的行上。这是因为你的模块和你的类都被命名为Clock
。给定导入语句,您要做的是self.clock=clock.clock(self.topFrame)
(或者您可以从modules.clock.clock import clock更改导入语句)
from modules.clock import Clock
class FullscreenWindow:
def __init__(self):
self.tk = Tk()
self.tk.configure(background='black')
self.topFrame = Frame(self.tk, background = 'black')
self.bottomFrame = Frame(self.tk, background = 'black')
self.topFrame.pack(side = TOP, fill=BOTH, expand = YES)
self.bottomFrame.pack(side = BOTTOM, fill=BOTH, expand = YES)
self.state = False
self.tk.bind("<Return>", self.toggle_fullscreen)
self.tk.bind("<Escape>", self.end_fullscreen)
# clock
self.clock = Clock(self.topFrame)
w = FullscreenWindow()
w.tk.mainloop()
File "modules\clock\Clock.py", line 8, in <module>
class Clock(Frame):
NameError: name 'Frame' is not defined