我正在尝试编写一个程序,其中在一帧(窗口)中有一个组合框,然后选择组合框值后,我希望它根据它在另一个窗口(类)上的值来打印一条消息,但是它说“ int”对象没有属性“ comboBoxDiamUnitString”。
正如您将看到的,我首先创建主应用程序,然后打开组合框所在的开始页面,选择它的值,在执行其他一些步骤后,我没有输入代码,因为它可以正常运行下一个窗口,但是我不能在我所在的这个新类中使用组合框值...
我想念什么?感谢您的提前帮助。
class App(Tk):
def __init__(self, *args, **kwargs):
Tk.__init__(self, *args, **kwargs)
MainMenu(self)
#Setup Frame
container = Frame(self)
container.pack(side="top", fill="both", expand=True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (StartPage, PageOne, PageTwo):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(StartPage)
def show_frame(self, context):
frame = self.frames[context]
frame.tkraise()
class StartPage(Frame):
def __init__(self, parent, controller):
Frame.__init__(self, parent)
def confirmar():
if (self.jobStep >= 0):
respuesta = messagebox.askquestion( self.comboBoxDiamUnitString.get())
if respuesta == "yes":
respuestaInicio = messagebox.askquestion('Puesta en Marcha', 'Iniciar máquina')
if respuestaInicio == "yes":
messagebox.showinfo("Inicio", "Iniciando máquina")
controller.show_frame(PageOne)
self.comboBoxDiamUnitString = tkinter.StringVar()
self.comboBoxDiametro = ttk.Combobox(self, state="readonly", width=5, values=["AWG", "mm"], justify="right", textvariable=self.comboBoxDiamUnitString)
class PageOne(Frame):
def __init__(self, parent, controller):
self.i = 10
GPIO.setmode(GPIO.BOARD)
GPIO.setup(13,GPIO.IN,pull_up_down=GPIO.PUD_UP)
GPIO.add_event_detect(13, GPIO.FALLING, callback=self.interrupt, bouncetime=300)
def interrupt(self, controller):
if(controller.comboBoxMetroVueltaString.get() == "Vueltas"):
print("vueltas")
if(controller.comboBoxMetroVueltaString.get() == "Metros"):
print("metros")