Raspberry Pi
Tutorial de Rapberry Pi en español.
- Juan Antonio Villalpando -
Volver al índice del tutorial
____________________________
40.- Tkinter.
- Tkinter es una utilidad para crear ventanas, GUI.
- La aplicación Python (IDLE) está creada con Tkinter.
- Cuidado con Tkinter en Pyton 2 y Python 3, ya que algunos comandos no son compatibles, además en Python 2 se importa Tkinter con T mayúscula.
- También debemos tener cuidado con la indentación del texto.
|
from tkinter import *
from tkinter import messagebox
window = Tk()
window.title("Título de la ventana")
window.geometry('350x200')
def clicked():
messagebox.showinfo('Título', 'Mensaje')
boton = Button(window,text='Pulsa', command=clicked)
boton.grid(column=1,row=1)
window.mainloop()
|
|
from tkinter import *
window = Tk()
window.title("Título de la ventana")
window.geometry('420x250')
etiqueta = Label(window, text="Esto es un ejemplo.")
etiqueta.grid(column=0, row=0)
def pulsa1():
etiqueta.configure(text="Pulsado Botón1.")
def pulsa2():
etiqueta.configure(text="Pulsado Botón2.")
boton1 = Button(window, text="Pulsa este Botón.", command=pulsa1)
boton1.grid(column=1, row=1)
boton2 = Button(window, text="Pulsa este Botón.", command=pulsa2)
boton2.grid(column=1, row=2)
window.mainloop()
|
|
from tkinter import *
from tkinter.ttk import *
window = Tk()
window.title("Título de la ventana")
seleccion = StringVar()
rad1 = Radiobutton(window,text='Rojo', value="R", variable=seleccion)
rad2 = Radiobutton(window,text='Verde', value="V", variable=seleccion)
rad3 = Radiobutton(window,text='Azul', value="A", variable=seleccion)
def pulsado():
print(seleccion.get())
boton = Button(window, text="Pulsa", command=pulsado)
rad1.grid(column=0, row=1)
rad2.grid(column=0, row=3)
rad3.grid(column=0, row=5)
boton.grid(column=3, row=7)
window.mainloop()
|
|
from tkinter import *
master = Tk()
scrollbar = Scrollbar(master)
scrollbar.pack(side=RIGHT, fill=Y)
listbox = Listbox(master, yscrollcommand=scrollbar.set)
for i in range(1000):
listbox.insert(END, str(i))
listbox.pack(side=LEFT, fill=BOTH)
scrollbar.config(command=listbox.yview)
mainloop()
|
- Hay muchos tutoriales sobre Tkinter, por ejemplo:
http://www.effbot.org/tkinterbook/
https://likegeeks.com/es/ejemplos-de-la-gui-de-python/#Crear-tu-primera-aplicacion-GUI
https://python-para-impacientes.blogspot.com/2015/12/tkinter-disenando-ventanas-graficas.html
- Ventana de entrada con usuario y clave:
|
from tkinter import *
from tkinter import ttk, font
import getpass
class Aplicacion():
def __init__(self):
self.raiz = Tk()
self.raiz.title("Acceso")
fuente = font.Font(weight='bold')
self.marco = ttk.Frame(self.raiz, borderwidth=2,relief="raised", padding=(10,10))
self.etiq1 = ttk.Label(self.marco, text="Usuario:", font=fuente, padding=(5,5))
self.etiq2 = ttk.Label(self.marco, text="Contraseña:", font=fuente, padding=(5,5))
self.usuario = StringVar()
self.clave = StringVar()
self.usuario.set(getpass.getuser())
self.ctext1 = ttk.Entry(self.marco, textvariable=self.usuario, width=30)
self.ctext2 = ttk.Entry(self.marco, textvariable=self.clave, show="*", width=30)
self.separ1 = ttk.Separator(self.marco, orient=HORIZONTAL)
self.boton1 = ttk.Button(self.marco, text="Aceptar", padding=(5,5), command=self.aceptar)
self.boton2 = ttk.Button(self.marco, text="Cancelar", padding=(5,5), command=quit)
self.marco.grid(column=0, row=0, padx=5, pady=5, sticky=(N, S, E, W))
self.etiq1.grid(column=0, row=0, sticky=(N, S, E, W))
self.ctext1.grid(column=1, row=0, columnspan=2, sticky=(E, W))
self.etiq2.grid(column=0, row=1, sticky=(N, S, E, W))
self.ctext2.grid(column=1, row=1, columnspan=2, sticky=(E, W))
self.separ1.grid(column=0, row=3, columnspan=3, pady=5, sticky=(N, S, E, W))
self.boton1.grid(column=1, row=4, padx=5, sticky=(E))
self.boton2.grid(column=2, row=4, padx=5, sticky=(W))
self.raiz.columnconfigure(0, weight=1)
self.raiz.rowconfigure(0, weight=1)
self.marco.columnconfigure(0, weight=1)
self.marco.columnconfigure(1, weight=1)
self.marco.columnconfigure(2, weight=1)
self.marco.rowconfigure(0, weight=1)
self.marco.rowconfigure(1, weight=1)
self.marco.rowconfigure(4, weight=1)
self.ctext2.focus_set()
self.raiz.mainloop()
def aceptar(self):
if self.clave.get() == 'raspberry':
print("Acceso permitido")
print("Usuario: ", self.ctext1.get())
print("Contraseña:", self.ctext2.get())
else:
print("Acceso denegado")
self.clave.set("")
self.ctext2.focus_set()
def main():
mi_app = Aplicacion()
return 0
if __name__ == '__main__':
main()
|
Tkinter
___________________________________________________
|