miércoles, octubre 02, 2019

21.- Usando un Notebook (cuaderno)

Self permite hacer referencia a la propia clase. Siempre use self para el primer argumento de los parámetros de la instancia, aunque se puede usar cualquier otra palabra, dado que self, no es una palabra reservada.
A) class Application(ttk.Frame):
def __init__(self, ventana):
En este caso, self, es recibido por parámetro, es decir, se le pasa el objeto en si, un objeto de la clase Application.
B) Class nombre(object):
       Name = “ “
      def __init__(self, name =”bar”):
           Self.name = name
     def get_name(self):
          return self.name
En este caso, self dentro de la implementación de cada método, haciendo referencia al atributo de la misma clase. Al definir clases en python, es necesario pasar por parámetro self, ya que de otra forma, no podríamos acceder a los atributos ni a los métodos de la clase.
Podemos reemplazar self por otra palabra:
A) class Application(ttk.Frame):
        def  __init__(instancia, ventana):
B) class nombre(objeto):
     Name = “ “
def __init__(instancia, name = “bar”):
      Instancia.name =name
def get name(instancia):
      Return instancia.name
En este ejemplo, terminamos con los ejemplos de manejo de widgets y su posición, asi como también el manejo de clases y funciones. La combinación de todos ellos nos lleva implementar una base de datos.

Ejemplo

import tkinter as tk
from tkinter import ttk


class Aplicacion:
    def __init__(self):
        self.ventana1=tk.Tk()
        self.ventana1.title("Creando Pestañas")
        self.ventana1.config(bg="orange")
        self.ventana1.geometry('330x150+250+250')
        #Creamos un objeto de la clase Notebook y le pasamos como referencia la ventana donde se mostrará
        self.cuaderno1 = ttk.Notebook(self.ventana1)
        #Creamos un objeto de la clase Frame y le pasamos como referencia el objeto de la clase Notebook donde se insertará:
        self.pagina1 = ttk.Frame(self.cuaderno1)
        
        self.clientes()
        self.pedidos()
        self.facturas()
        
        self.cuaderno1.grid(column=0, row=0, padx=10, pady=10)
        self.ventana1.mainloop()   
    def clientes(self):
        #añadimos el objeto de la clase Frame en la pagina1 y el nombre de la pestaña
        self.cuaderno1.add(self.pagina1, text="Datos del Cliente")
        #creamos una etiqueta
        self.label1=ttk.Label(self.pagina1, text="Nombre")
        self.label1.grid(column=0, row=0)
        self.entry1=tk.Entry(self.pagina1, width=30)
        self.entry1.grid(column=1, row=0)
        self.label2=ttk.Label(self.pagina1, text="Apellidos")
        self.label2.grid(column=0, row=1)
        self.entry2=tk.Entry(self.pagina1, width=30)
        self.entry2.grid(column=1, row=1)
        self.boton1=ttk.Button(self.pagina1, text="Guardar")
        self.boton1.grid(column=1,row=2,padx=4,pady=4)
    def pedidos(self):        
        self.pagina2 = ttk.Frame(self.cuaderno1)
        self.cuaderno1.add(self.pagina2, text="Pedido")
         
        self.label3=ttk.Label(self.pagina2, text="Aqui va el pedido")
        self.label3.grid(column=0, row=1)
        
        self.pagina3 = ttk.Frame(self.cuaderno1)
    def facturas(self):
        self.cuaderno1.add(self.pagina3, text="Factura")
        
        self.label4=ttk.Label(self.pagina3, text="Aqui sale la factura")
        self.label4.grid(column=0, row=1)
        
        self.cuaderno1.grid(column=0, row=0)        

        self.ventana1.mainloop()

aplicacion1=Aplicacion()

No hay comentarios.:

Publicar un comentario