¿Cómo crear mi primera app con interfaz gráfica en Python?

¿Cómo crear mi primera app con interfaz gráfica en python? (Ejercicio básico)



Debes saber que necesitas instalar python antes de programar en dicho lenguaje, y los ficheros que guardes como python los harás utilizando la extensión .py

Aquí te dejo el sitio oficial: https://www.python.org/


1.- Dependiendo la versión de python que utilices debes adecuar la sintaxis al codear: en éste caso, te explicaré como hacerlo según la versión 2.7


2.- Lo primero es definir el tipo de encoding para que podamos usar caracteres especiales como acentos y "ñ" sin problemas, y luego importar la librería para interfaces gráficas (Hay varias maneras pero lo haré de ésta pues es más simple para entender; ah y usaré la libreria Tkinter pero hay otras):

#-*- encoding:utf-8 -*- 


from Tkinter import*


Creo una función que utilizará un botón que implementaremos (Es así de simple como lo ves crear una función, basta con escribir "def" seguido del nombre de la función, paréntesis y dos puntos, y su contenido que en este caso será algo tan simple como imprimir un hola mundo):

def funto():

print "hola mundo";


3.- Lo segundo es crear la caja (app y from son variables) con dimensiones, título, color de fondo y definición de una estructura (invisible) de celdas para organizar los elementos:

app = Tk() 


app.geometry("330x300") #dimensiones


app.title("Mi primera app") #colocar el titulo


app.configure(bg="#0532AC") #color -- bg(BackGround)


frame = Frame(app) #creo ventana dentro de la caja raiz


frame.configure(bg="#2252D7") #le coloco color de fondo a la ventana creada

frame.grid(column=0, row=0, pady=(10,10), padx=(10,10)) #pad es padding, o sea margen, y grid es el sistema de celdas.

4.- Ahora podemos añadir algunos elementos / widgest:


txt1 = Entry(frame, width=47) 
#creo caja de texto cuyo nombre quise que fuera txt1 para identificarlo en el código.

txt1.grid(column=1, row=1, pady=(10,10), padx=(10,10))


bt1 = Button(frame, width=40, text="Click aquí", command=funto) #creo botón cuyo nombre quise que fuera bt1 para identificarlo en el código.


bt1.grid(column=1, row=2, pady=(10,10), padx=(10,10))

5.- Luego mostrar lo creado, asegurando de finalizar con un mainloop(), que permite que la aplicación se mantenga abierta.


app.mainloop() 
#Para que la app se mantenga abierta con normalidad.


El código completo:
#-*- encoding:utf-8 -*-

from Tkinter import*


def funto():


  print "hola mundo";

app = Tk() 


app.geometry("330x300") #dimensiones


app.title("Mi primera app") #color el titulo


app.configure(bg="#0532AC") #color -- bg(BackGround)


frame = Frame(app) #creo ventana dentro de la caja raiz


frame.configure(bg="#2252D7") 
#le coloco color de fondo a la ventana creada

frame.grid(column=0, row=0, pady=(10,10), padx=(10,10)) #pad es padding, o sea margen, y grid es el sistema de celdas.

txt1 = Entry(frame, width=47) #creo caja de texto cuyo nombre quise que fuera txt1 para identificarlo en el codigo


txt1.grid(column=1, row=1, pady=(10,10), padx=(10,10))


bt1 = Button(frame, width=40, text="Click Aquí", command=funto) #creo botón cuyo nombre quise que fuera bt1 para identificarlo en el código.

bt1.grid(column=1, row=2, pady=(10,10), padx=(10,10))

app.mainloop() #Para que la app se mantenga abierta con normalidad.

Puedes notar que cada vez que creo un elemento, siempre dentro del paréntesis primero coloco el nombre de la ventana, eso es para definir que estarán dentro de dicha ventana. "width" y "height"(que en este caso no lo usé) es para las dimensiones ("alto"  y "ancho" respectivamente); Y "padx" / "pady" es  para establecer márgenes en la dirección x, y, respectivamente.

Mi consejo para que aprendas mejor es que busques en internet las expresiones que no entiendas, como Widgest, diferencias de python 2.7 y 3, Tkinter, encoding python,  Entry Python, Button Python, grid python, command python, y funciones python.

Si hiciste todo tal cual se detalló en este tutorial, el resultado debería ser el siguiente:


Editor Sublime Text


Y al presionar el botón "Click Aquí" en la consola debería darte como respuesta "Hola mundo"

Espero te haya sido de utilidad este post, por supuesto continuaré posteando tutos similares en distintos lenguajes y de mayor complejidad creciente, si eres principiante debes notar que lo que estoy publicando es algo ligero y rudimentario y que de seguro ya lo entendiste porque eres bien list@. Estoy abierto a preguntas y opiniones.


Compartir en Facebook

Comentarios

  1. Cómo solucionas el problema para poder escribir carateres con acento en widgets tkinter?

    ResponderEliminar

Publicar un comentario

Entradas populares