Используйте данные из выпадающего списка из одного класса в другом классе - PullRequest
0 голосов
/ 19 января 2019

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