Я пытаюсь создать программу, в которой в одном кадре (окне) у меня есть поле со списком, затем после выбора значения поля со списком я хочу напечатать сообщение на основе его значения в другом окне (классе), но оно говорит: 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")