我有一个带有 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'
好像换了页但是整个页都是空白