TkInter
Es un módulo para python utilizado para hacer interfaces gráficas. Puede ser bajado de la internet, para ello utilize un buscador y coloque la palabra "tkinter3000". Baje el archivo y ejecútelo. Se recomienda reiniciar la máquina. Se recomienda instalar primero el programa de desarrollo "geany". Geany que puede ser bajado de la internet. Luego se instala y finalmente se debe configurar la variable de entorno path del Windows.
Al igual que todos los módulos se accesa a través de "import":
import Tkinter
O bien:
from Tkinter import *
Programa básico para generación de una interfaz gráfica utilizando el módulo de TkInter:
# File: hello1.py
from Tkinter import *
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()
Interfaz gráfica Tk- generación de etiquetas
En este programa se genera un interfaz gráfica, basada en objeto de la clase Tk que ayudará al estudiante a comprender el uso de la sintáxis en la programación con clases.
#!/usr/local/bin/python
from Tkinter import *
import tkFont
class Application(Frame):
def __init__(self, master=None): # constructor
Frame.__init__(self, master) #generando un marco
self.grid() #empaquetando
self.createWidgets()# llamando a un metodo que crea una interfaz a partir del frame.
def createWidgets(self):
#generacion del contenido de la interfaz
self.quitButton = Button ( self, text="Quit", command=self.quit ) #Agregando un boton con
#evento
self.quitButton.grid() #empaquetar boton #generando un tipo de letra para una etiqueta
helv36 = tkFont.Font ( family="Helvetica", size=36, weight="bold") # nueva etiqueta
self.etiqueta1 = Label(self,text="etiqueta1",font=helv36, fg="red") #colocando la etiqueta en la grid
self.etiqueta1.grid(row=1, column=0, columnspan=2, rowspan=2) #generando otra etiqueta
self.etiqueta2 = Label(self,text="etiqueta2")
self.etiqueta2.grid(row=0,column=1)
#**********inicio del main**********************
app = Application() # generando una instancia de la clase Application
app.master.title("Ejemplo de aplicacion") # definiendo titulo de la ventana principal
app.mainloop() # a la espera de eventos
Explicación:
from Tkinter import *
class App:
def __init__(self, master):
# se genera una clase con el constructor (_init_) se utiliza como contenedor principal a master.
frame = Frame(master)
frame.pack()
# se genera un frame para agregarlo a master
self.button = Button(frame, text="QUIT", fg="red", command=frame.quit)
self.button.pack(side=LEFT)
self.hi_there = Button(frame, text="Hello", command=self.say_hi)
self.hi_there.pack(side=LEFT)
# se generan dos botones y se agregan a al widget padre (frame).
def say_hi(self):
print "hi there, everyone!"
# se crea el método say_hi(self) del segundo botón.
root = Tk()
app = App(root)
root.mainloop()
Se genera el proceso de applicación y espera de eventos.
Otros ejemplos:
a) Generando una ventana con etiquetas.
fromTkinter import *
root = Tk()
w = Label(root, text="Red", bg="red", fg="white")
w.pack(side=LEFT)
w = Label(root, text="Green", bg="green", fg="black")
w.pack(side=LEFT)
w = Label(root, text="Blue", bg="blue", fg="white")
w.pack(side=LEFT)
mainloop()
b) Para dibujar en el centro un rectángulo y íneas que nace de los vértices de la ventana hacia los vértices del rectángulo dibujado relleno de color azul. Se anexa textos y administración de tiempo.
import time
from Tkinter import *
def pora():
w.create_text(100,45,text="Dibu", fill="white", font=("Helvectica", "16"))
master = Tk()
master.title("Dibujando")
w = Canvas(master, width=200, height=200)
#helv36 = tkFont.Font ( family="Helvetica", size=36, weight="bold")
w.pack()
w.create_line(0, 0, 200, 100)
w.create_line(0, 100, 200, 0, fill="red", dash=(4, 4))
w.create_rectangle(50, 25, 150, 75, fill="blue")
w.create_text(100,45,text="", fill="white", font=("Helvectica", "16"))
tel=w.create_text(100,140,text="www.lomasdeterciopelo.co.cr",fill="brown", font=("Helvectica", "10", "bold italic") )
master.after(5000,pora)
mainloop()
c)Utilización del grid para colocar objetos.
from Tkinter import *
root = Tk()
w = Label(root, text="Additive:")
w.grid(sticky=E)
w = Label(root, text="Subtractive:")
w.grid(sticky=E)
w = Label(root, text="Cyan", bg="cyan", height=2)
w.grid(row=1, column=1)
w = Label(root, text="Magenta", bg="magenta", fg="white")
w.grid(row=1, column=2)
w = Label(root, text="Yellow", bg="yellow", height=2)
w.grid(row=1, column=3)
w = Label(root, text="Red", bg="red", fg="white", height=2)
w.grid(row=0, column=1)
w = Label(root, text="Green", bg="green", height=3)
w.grid(row=0, column=2)
w = Label(root, text="Blue", bg="blue", fg="white")
w.grid(row=0, column=3)
mainloop()
{backbutton}
|