python tkinter frame

tkinter python



¿Qué hace Frame.__ init__? (2)

La clase AppUI se basa en la clase Frame de Tkinter . Esto significa que la clase AppUI es un tipo de Frame pero con algunos comportamientos ligeramente diferentes o personalizados. Lo que significa que los métodos de la clase AppUI pueden necesitar (de hecho, normalmente necesitarán) llamar al código de la clase Frame . Es decir, AppUI quiere hacer lo mismo que la clase Frame , y también algo más. Eso es lo que sucede aquí: cuando AppUI una instancia de AppUI , AppUI quiere que se inicialice como un Frame y luego realice la inicialización específica de AppUI .

Aquí AppUI llama explícitamente al método __init__() su clase padre.

También puede hacer esto usando la función super() y normalmente lo haría; básicamente se requiere en escenarios de herencia múltiple. Pero debido a que Tkinter usa "clases de estilo antiguo" , tienes que hacerlo a la vieja usanza aquí.

en el siguiente código, línea 5, ¿qué hace Frame.__init__ ? ¿Podría alguien explicar el concepto detrás de esto? ¡Muchas gracias!

from Tkinter import * class AppUI(Frame): def __init__(self, master=None): Frame.__init__(self, master, relief=SUNKEN, bd=2) [...]

Editar: Código completo con sangría correcta aquí


El concepto subyacente es que Tkinter proporciona un tipo de widget especial para los menús, StatusBar se hereda del widget Frame. Mientras usa eso, creo que el propósito es que no aumentará el riesgo de que sus métodos adicionales entren en conflicto con los atributos o métodos utilizados por Tkinter.

ver: http://effbot.org/tkinterbook/tkinter-application-windows.htm