我正在尝试获取redundancyCheckbutton的状态,以查看是否应该运行test.py
脚本。正如现在一样,单击一个按钮后,run.py
将触发并运行testSomething函数。每当我尝试使用.get()
或类似的东西获取状态时,它会抛出模块对象没有属性错误。知道我做错了什么吗?另外,将if语句放在run.py
文件或test.py
文件中会更好吗?提前谢谢。
类ToolGui(Frame): def create_widgets(self): self.redundancyChecked = IntVar()
self.redundancyCheckbutton = Checkbutton(rightframe, onvalue=1, offvalue=0, text="Run Script?", variable=self.redundancyChecked)
self.redundancyCheckbutton.pack(side=TOP, pady=(5,0))
类线程(threading.Thread): def runC(self,varis):
####if checkbutton is checked, run this...could go here
test.trySomething(workDir)
import os
import sys
import subprocess
def trySomething(dir):
import Tool
###or If statement could go here, not sure which would be better
Tool.redundancyCheckbutton.config(state=DISABLED)
答案 0 :(得分:0)
redundancyCheckbutton
属于某个类实例的实例。我不知道什么课,因为你没有显示足够的代码。
可能导致问题的行(我假设,因为您没有显示实际的错误消息)是:
import Tool
Tool.redundancyCheckbutton.config(...)
在此上下文中,Tool
是一个模块。此模块没有redundancyCheckbutton
属性,就像错误消息告诉您的那样。同样,该属性属于对象,而不属于模块。
最有可能的是,Tool
中的某个地方定义了一个类。既然你没有说,为了这个答案,我会说它被命名为GUI
。因此,您有一个模块Tool
,其中包含一个类GUI
。此类定义属性self.redundancyCheckbutton
。
创建该按钮的唯一方法是创建该类的实例。因此,在代码中的某个位置,您必须执行以下操作:
gui = GUI(...) # or maybe Tool.GUI(...)
因此,要访问redundancyCheckbutton
,您必须使用gui.redundancyCheckbutton
,因为它是对象的属性,它由类在工具模块中定义。