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)
[...]
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