es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python: El Checkbox de Tkinter no se actualiza visualmente cuando no se establece ningún comando.

Tengo un problema con mi código:
Quiero crear n casillas de verificación en tkinter y algunas de ellas deberían estar marcadas por defecto.
Este es mi código:

for i, cam in enumerate(scene.cameras):
    self.activCamVarList.append(tk.BooleanVar())

button = tk.Checkbutton(self.cameraSettingsFrame, 
                        text=cam, bg=Colors.widget,
                        fg=Colors.fontColor, 
                        selectcolor=Colors.widget, 
                        activebackground=Colors.widget,
                        variable=self.activCamVarList[i]) 
self.cameraButtons.append(button)
button.pack(side=tk.LEFT, padx=(0,15))
if cam == self.scene.aCamera:
    button.select()

Sin embargo, si ejecuto mi código, todas las casillas de verificación no están marcadas (la instrucción if funciona bien).
Pero cuando agrego command=lamdba:self a mis botones, el código funciona perfectamente. ¿Alguien puede explicar por qué?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Es posible que al agregar command=lambda:self a los botones, se active una actualización de la interfaz gráfica (GUI), lo que actualiza el estado de las casillas de verificación para reflejar los valores predeterminados. Sin este comando, es posible que el estado no se inicialice correctamente y, por lo tanto, todas las casillas de verificación queden desmarcadas.

    En resumen, la función lambda del comando actúa como un disparador para actualizar la GUI y el estado de las casillas de verificación.

Comments are closed.