El resultado del cdigo total, sera: Cdigo from Tkinter import * root = Tk() root.mainloop() Cuando inicieis esto, vereis que ya tenemos nuestro formulario vaco.
Nosotros usaremos grid para elegir columnas y lineas, y ahora llega el toque final: Cdigo holamundo.grid(row=1, column=1) Y ahora si juntamos todo: Cdigo from Tkinter import * root = Tk() holamundo = Label(root, text="Hola Mundo!") holamundo.grid(row=1, column=1) root.mainloop()
Cdigo holamundolbl = Label(root, text="Hola Mundo") holamundolbl.grid(row=2, column=1) Muy bien, una vez tenemos el nombre de la funcion y el cdigo, donde command=, pondremos: Cdigo Button(...command=holamundo...) Esto llamara a la funcin holamundo, y por ultimo, veremos el ancho o alto del button, nosotros por defecto siempre usaremos el width=20, que es el ancho de 20. Cdigo Button(...width=20)
Muy bien, ahora que ya tenemos nuestro button y sus partes, haremos el ejemplo: Cdigo def holamundo(): holamundolbl = Label(root, text="Hola Mundo") holamundolbl.grid(row=2, column=1) holamundo = Button(root, text="Activar Hola Mundo", command=holamundo, width=20) holamundo.grid(row=1, column=1) Muy bien, y ahora complementamos los modulos y funciones de formulario: Cdigo from Tkinter import * def holamundo(): holamundolbl = Label(root, text="Hola Mundo") holamundolbl.grid(row=2, column=1) root = Tk() holamundo = Button(root, text="Activar Hola Mundo",command=holamundo, width=20) holamundo.grid(row=1, column=1) root.mainloop()
6.Utilizamos TextBox's
Los textbox's en Python principalmente, hasta ms adelante los usaremos con Strings, osea as, cadenas de texto. Antes que nada, tendriamos que declarar el nombre del textbox como variable de string, eso lo podemos hacer poniendo esto: Cdigo mi_variable_string = StringVar() De esta manera, mi_variable_string que seria el nombre de vuestra variable, sera identificada como String, ahora, vamos a la declaracin del textbox. Cdigo el_nombre_de_nuestro_textbox = Entry(root, textvariable=mi_variable_string) De esta manera, nuestro textbox cuando escribamos almacenara ese texto en la variable mi_variable_string. Para utilizar las variables de string de los TextBox, cuando empleemos ese contenido, tendremos que hacerlo incluyendo .get() al final, nuestro resultado quedaria as, imaginaos que ahora lo queremos mostrar por consola y no por grafica, quedaria algo as: Cdigo print mi_variable_string.get()
Y bien, volviendo al tema principal, hablaremos sobre los checkbox, para los que no sabes que es, son unos cuadrados de seleccin que se utilizan en formularios de contacto, supscripcin... Estos cuadrados a diferencia de los RadioButton (los veremos ms adelante) solo puede haber 1 clickeado. Bueno, la syntax del widget checkbutton es la siguiente: Cdigo check = CheckButton(root, text="Lo que saldra al lado", var=variable_que_usaremos) check.grid() Donde check seria el nombre de nuestro widget, CheckButton indicamos que sera un Cuadrado de seleccin, root es nuestro identificador, Lo que saldra al lado es lo que saldria al lado para informar que pasa o que seleccionas al clickar ese cuadrado y variable_que_usaremos es la variable con la que identificamos nuestro checkbutton. Un ejemplo sencillo seria este: Cdigo var = IntVar() check = Checkbutton(root, text="Hola mundo", variable=var) check.grid() Y ahora podriamos saber si ese cuadrado ha sido seleccionado haciendo un if: Cdigo def funcion_presionada_por_button(): if var.get(): print "El checkbutton fue seleccionado" else: print "El checkbutton no fue seleccionado" De esta manera le decimos que si la variable var del checkbutton contiene algo osea as una seleccion nos salga algo y por contra otra cosa, donde funcion_presionada_por_button es la funcion o mejor llamado el command que llamamos desde un button creado por nosotros.
Cdigo from Tkinter import * def verificar(): if var.get(): print "El checkbutton fue seleccionado" else: print "El checkButton no fue seleccionado" root = Tk() var = IntVar() check = Checkbutton(root, text="Seleccionado/ No seleccionado", variable=var) cm = Button(root, text="Verificar", command=verificar, width=20) check.grid() cm.grid() root.mainloop()
print a.get()-b.get() lblt = Label(root, text="Total: " + str(a.get()-b.get())) lblt.grid(row=3, column=0) def calc_mult(): print a.get()*b.get() lblt = Label(root, text="Total: " + str(a.get()*b.get())) lblt.grid(row=3, column=0) def calc_div(): print a.get()/b.get() lblt = Label(root, text="Total: " + str(a.get()/b.get())) lblt.grid(row=3, column=0) root = Tk() root.title('PyCalk - Python/TK') a = IntVar() b = IntVar() atxt = Entry(root, textvariable=a,width=15) btxt = Entry(root, textvariable=b,width=15) cbs = Button(root, text="Sumar", command=calc_sumar,width=10) cbr = Button(root, text="Restar", command=calc_restar,width=10) cbm = Button(root, text="Multiplicar", command=calc_mult,width=15) cbd = Button(root, text="Dividir", command=calc_div,width=10) atxt.grid() btxt.grid() cbs.grid(row=0, column=1) cbr.grid(row=1, column=1) cbm.grid(row=2, column=0) cbd.grid(row=2, column=1) root.mainloop()
Como veis, en <nombre_del_textarea> sera la variable que defina el textarea, donde Text es el nombre del widget con el que identificamos, el <identificador> es el identificador TK que declaramos al inicio, en el curso por defecto es root, height=h es la altura de largo y width=w de ancho, por defecto, en el curso usaremos h = 20, w = 40, y nos quedara algo as: Cdigo textarea = Text(root, height=20, width=40) Como veis cumplimos los requisitos bsicos del widget, pero tendriamos un problema, al aadir mucho contenido de texto, perdiriamos el hilo, pues no tenemos un objeto en todo caso un scrollbar que nos suba o nos baje para ver todo el texto, para eso como he mencionado varias veces anteriormente usaremos un scrollbar, su sintaxis es: Cdigo <nombre_del_scrollbar> = Scrollbar(<identificador>, command=<nombre_del_textarea>.<funcion_de_vista>) Donde nombre del scrollbar ponemos la variable que guarda nuestro widget, la palabra Scrollbar identifica como scrollbar nuestro objeto, el identificador es el identificador TK que declaramos anteriormente, en el curso por defecto es TK, <nombre_del_textarea> seria el nombre de la variable que usamos anterior mente y luego separado por un punto <funcion_de_vista>, puede ser X o Y, nostros, por defecto usaremos la Y, que es vertical, ejemplo: Cdigo scroll = Scrollbar(root, command=textarea.yview) Como veis, le llamamos scroll, lo identificamos como un scrollbar, usamos nuestro identificador tk que inicia los objetos que es "root", y luego como veis aadimos el nombre de nuestro textarea y le aadimos una vista horizontal con el yview, si quereis, cambiando y por x podeis conseguir una vista horizontal. Ahora tenemos de configurar al textarea indicandole que tiene un scrollbar preparado, como lo hacemos? con la funcion configure: Cdigo <nombre_del_textarea>.configure(yscrollcommand=<nombre_del_scrollbar>.set)
Donde nombre del textarea ponemos el nombre de la variable y donde nombre del scrollbar idem, pero con el del scrollbar... y por ultimo, declaramos las posiciones de inicio de nuestros objetos, primero el textarea, le indicamos que sealara que el textarea se pondra a la izquierda (<): Cdigo <nombre_del_textarea>.pack(side=LEFT) Donde nombre del textarea ponemos la variable, y como veis con pack indicamos la fijacin de lugar y con side la posicion. Y con el scrollbar, algo parecido: Cdigo <nombre_del_scrollbar>.pack(side=RIGHT, fill=Y) En el nombre del scrollbar el nombre de la variable, con el pack fijamos el lugar, con side indicamos que ira a la derecha del textarea y con fill indicamos si sera horizontal o vertical y por supuesto ponemos vertical (siempre tiene que estar en mayscula (Y,X)). Y aqui os dejo un ejemplo total: Cdigo from Tkinter import * root = Tk() textarea = Text(root, height=20, width=40) scroll = Scrollbar(root, command=textarea.yview) textarea.configure(yscrollcommand=scroll.set) textarea.pack(side=LEFT) scroll.pack(side=RIGHT, fill=Y) root.mainloop() Aqui se encuentra el tutorial original... http://foro.elhacker.net/scripting/python_curso_de_python_con_interfaces_graficas_tkt232514.0.html
Es mejor una mentira que te hace feliz, que una verdad que te amarga...