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