Tkinter AttributeError:type object';Robo4_板没有属性';tk';

Tkinter AttributeError:type object';Robo4_板没有属性';tk';,tkinter,Tkinter,我的tkinter程序运行得很好,但加载需要很长时间。 我使用类是为了使用模块,而不是将整个程序放在一个文件/模块中(不确定哪个术语)。 我将CheckWinner脚本复制到一个新页面,并将其导入主程序 现在我得到一个关于属性的错误 代码是在一个树莓圆周率,是很难提取到我的电脑。 Robo4_Board是定义屏幕和大多数变量的主要类 错误 Tkinter回调中的异常 回溯(最近一次呼叫最后一次): 文件“/usr/lib/python3.7/tkinter/init.py”,第1705行,在调用

我的tkinter程序运行得很好,但加载需要很长时间。 我使用类是为了使用模块,而不是将整个程序放在一个文件/模块中(不确定哪个术语)。 我将CheckWinner脚本复制到一个新页面,并将其导入主程序

现在我得到一个关于属性的错误

代码是在一个树莓圆周率,是很难提取到我的电脑。 Robo4_Board是定义屏幕和大多数变量的主要类

错误 Tkinter回调中的异常 回溯(最近一次呼叫最后一次): 文件“/usr/lib/python3.7/tkinter/init.py”,第1705行,在调用中 返回self.func(*args) 文件“/home/pi/Documents/TESTS/ROBO4_TEST_B.py”,第16行,组合函数f(*args,**kwargs) 文件“/home/pi/Documents/TESTS/ROBO4_TEST_CheckWinner_A.py”,第17行,在CheckWinner_A ROBO4.br_y_0=tk.Button中(ROBO4_TEST_B.ROBO4,text=“Red Wins”,padx=2,pady=2,bg=r,fg=“black”)文件“/usr/lib/python3.7/tkinter/init.py”,第2369行,在initinit小部件中。initinit(self,master,cnf)按钮文件“/usr/lib/python3.7/tkinter/init.py”,第2292行,在initBaseWidget中。_setup(self,master,cnf)文件“/usr/lib/python3.7/tkinter/init.py”,第2262行,在_setupself.tk=master.tk属性中。错误:类型对象“Robo4\u Board”没有属性“tk”

我该怎么做才能让链接正常工作? 不确定代码应该放在哪里。
我已经修改了代码,以表示CheckWinner与ROBO4_TEST_B在同一框架中的工作原理

这是机器人测试列表 这是机器人测试 command=combine\u funcs(lambda:controller.show\u frame(“起始页”)) 后场(x=300,y=670)


您试图使用一个类而不是一个小部件作为另一个小部件的父级。父级必须始终是一个小部件


让我们看看错误:

Robo4_Board' has no attribute 'tk'
Tkinter在需要小部件时,如果您将实际小部件以外的内容传递给它的某个类,则会抛出类似这样的错误。例如,如果您执行类似于
tk.Label(“这是一个字符串”)
的操作,则会得到错误
AttributeError:'str'对象没有属性“tk”

在您的情况下,错误消息如下:

AttributeError: type object 'Robo4_Board' has no attribute 'tk'
这句话的意思是:

robo4.br_y_0=tk.Button(ROBO4_TEST_B.robo4,...)
在此上下文中,
ROBO4\u TEST\B.ROBO4
是一个类而不是一个类的实例。由于类不是小部件,tkinter会抛出错误

这可能是由于以下代码行造成的:

robo4 = Robo4_Board
您将
robo4
定义为一个类,而不是该类的实例


可能解决方案是执行
robo4=robo4_Board()
(注意后面的
()
),但我不能确定。我不知道您的代码中是否有其他地方假设
robo4
是一个类而不是一个实例。您没有提供正确的[mcve]因此,我无法运行您的代码。

您能在答案中添加文件夹树吗?您需要将此代码缩减为a,我们需要筛选的代码太多。此外,请包含准确的错误消息。缩减到我认为可以执行的最小值。准确的错误消息是指最终错误上方的所有行吗?这是s代码无法运行,因为您正在导入我们没有的东西。当checkwinner在同一帧中时,它是如何工作的?我正在寻找将按钮放置到初始帧中。如果我将checkwinner复制到ROBO4_测试中,并将ROBO4_测试更改为ROBO4,则所有操作都不会出错。有方法表示模块吗?我会通知您他们从哪里开始。评论效果很好。有两个地方我无法修复缩进。我希望这有助于解决我的问题。感谢您的时间和努力,最重要的是理解&patience@drazz52当前位置我不知道你所说的“赢家是如何工作的?”“。您不能在需要小部件的地方使用
checkwinner
。底线是,您正在将一个非小部件值传递给一个需要小部件的参数。我已经修改了代码,以表示在与ROBO4_TEST_B相同的框架内CheckWinner的工作方式。在StartPage内,按钮br_y_0有一个到CheckWinner的命令。CheckWinner_a不是在调用小部件吗?
AttributeError: type object 'Robo4_Board' has no attribute 'tk'
robo4.br_y_0=tk.Button(ROBO4_TEST_B.robo4,...)
robo4 = Robo4_Board