martes, 1 de marzo de 2022

Python: suma en ventana con POO

Desde que empecé a trabajar en Python con ventanas me he dado cuenta de que trabajar con programación orientada a objetos es una mejor opción. Esta es la versión de la suma de dos enteros en ventana pero con los elementos de la POO.

from tkinter import *

class Suma():
    def __init__(self):
        self.w = Tk()
        self.w.title("Suma de dos números enteros")
        self.w.geometry('350x200')

        # Propiedades de la clase
        self.n1 = IntVar()
        self.n2 = IntVar()
        self.s = IntVar()

        # Creación de etiquetas
        self.lbl1 = Label(self.w,text="Primer número: ")
        self.lbl2 = Label(self.w,text="Segundo número: ")
        self.lbl3 = Label(self.w,text="Resultado: ")

        # Creación de cuadros de textos 
        self.txt1 = Entry(self.w, width = 20)
        self.txt2 = Entry(self.w, width = 20)

        # Una etiqueta para mostrar el resultado
        self.lbl4 = Label(self.w,text="")

        # Se organizan los controles usando El gestor de geometría place
        self.lbl1.place(x=30, y=10)
        self.txt1.place(x=200, y=10)
        self.lbl2.place(x=30, y=50)
        self.txt2.place(x=200, y=50)
        self.lbl3.place(x=30, y=90)
        self.lbl4.place(x=200, y=90)

        # creación de botones y asignación de eventos
        self.btn1 = Button(self.w, text = "Sumar", command = self.sumar)
        self.btn2 = Button(self.w, text = "Salir",  command = quit)
        self.btn1.place(x=30, y=130)
        self.btn2.place(x=200, y=130)

        # El texto 1 toma el enfoque
        self.txt1.focus_set()

        # la ventana empieza a leer los eventos
        self.w.mainloop()

    # metodo sumar de la clase
    def sumar(self):
        self.n1 = int(self.txt1.get())
        self.n2 = int(self.txt2.get())
        self.s = self.n1 + self.n2
        self.lbl4.configure(text = self.s)
            
def main():
    mi_app = Suma()
    return 0

if __name__ == '__main__':
    main()

No hay comentarios.:

Publicar un comentario