没有显示框架,因为之前完成的操作很耗时

问题描述 投票:0回答:0

我有一个带有 MVC 模式的 tkinter 应用程序。我创建了一个带有 2 个框架的主窗口,一个用于页面选择器,另一个用于显示不同的页面。

处理页面的功能是:

def cambiar_modeloFinal(self, id):
        self.regresionFinalV.modeloGHI.config(bg=inactiveColor, activebackground=backgroundColor)
        self.regresionFinalV.modeloTEMP.config(bg=inactiveColor, activebackground=backgroundColor)
        self.regresionFinalV.modeloAP.config(bg=inactiveColor, activebackground=backgroundColor)
        self.regresionFinalV.modeloRH.config(bg=inactiveColor, activebackground=backgroundColor)
        
        self.model.set_modeloFinal(self.regresionFinalV.variable, self.regresionFinalV.modeloSelected.get())  
        
        if(id == 1):
            self.regresionFinalV.variable = "GHI"
            print(self.model.get_finalGHI())
            self.regresionFinalV.modeloSelected.set(self.model.get_finalGHI())
            self.regresionFinalV.modelos = self.model.get_modelosGHI()
            self.regresionFinalV.rellenar_tabla()
            self.regresionFinalV.modeloGHI.config(bg= activeColor, activebackground=activeColor)

        elif(id == 2):
            self.regresionFinalV.variable = "TEMP"
            self.regresionFinalV.modeloSelected.set(self.model.get_finalTEMP())
            self.regresionFinalV.modelos = self.model.get_modelosTEMP()
            self.regresionFinalV.rellenar_tabla()
            self.regresionFinalV.modeloTEMP.config(bg= activeColor, activebackground=activeColor)

        elif(id==3):
            self.regresionFinalV.variable = "AP"
            self.regresionFinalV.modeloSelected.set(self.model.get_finalAP())
            self.regresionFinalV.modelos = self.model.get_modelosAP()
            self.regresionFinalV.rellenar_tabla()
            self.regresionFinalV.modeloAP.config(bg= activeColor, activebackground=activeColor)
        else:
            self.regresionFinalV.variable = "RH"
            self.regresionFinalV.modeloSelected.set(self.model.get_finalRH())
            self.regresionFinalV.modelos = self.model.get_modelosRH()
            self.regresionFinalV.rellenar_tabla()
            self.regresionFinalV.modeloRH.config(bg= activeColor, activebackground=activeColor) 

页面控制器的按钮是:

 self.view.tmyButton.bind("<Button>", lambda event: self.cambiar_pagina(4)) 

当我按下这个按钮时,一切顺利,新的框架就会显示出来。然而,当按下另一个按钮时,应该做几乎相同的事情:

self.regresionFinalV.tmyB.bind("<Button>", lambda event: self.cambiar_tmy(event))

有这个功能

def cambiar_tmy(self, event):
        self.model.set_modeloFinal(self.regresionFinalV.variable, self.regresionFinalV.modeloSelected.get())  
        selected_value = self.regresionFinalV.dropboxP.get()
        if(self.model.isPosible_calcularTMY() == False):
            showwarning('Advertencia', 'Es necesario seleccionar un modelo para cada variable disponible.')
        elif selected_value == "":
            showwarning('Advertencia', 'Debe indicar el tipo de TMY que desea calcular.')
        else:
            options = ["P50", "P75", "P90", "P99"]
            index = options.index(selected_value)
            probs = [0, 0.25, 0.1, 0.01]
            selected_prob = probs[index]
            self.model.type_tmy = (selected_value, selected_prob)
            self.model.calcular_tmy()
            self.cambiar_pagina(4)
            self.view.regresionFinalButton.event_generate("<Button>")
            self.view.tmyButton.event_generate("<Button>")

        return 'break'

好像换了页但是整个页都是空白

python tkinter frame
© www.soinside.com 2019 - 2024. All rights reserved.