使用来自另一个班级内另一个班级的组合框中的数据

时间:2019-01-18 21:44:23

标签: python-3.x variables combobox

我正在尝试编写一个程序,其中在一帧(窗口)中有一个组合框,然后选择组合框值后,我希望它根据它在另一个窗口(类)上的值来打印一条消息,但是它说“ 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")       

0 个答案:

没有答案