Hola a tod@s de nuevo, esta vez voy a seguir hablando sobre Tkinter, ayer hicimos una pequeña "toma de contacto" con el nuevo módulo explicando como crear una ventana y como cambiarle el título, hoy explicaré como crear Frames, botones, cuadros de texto...
Supongo que si estáis mirando este post, es por que leísteis ayer el anterior artículo, ya que es imprescindible para seguir este tutorial, en caso negativo leed lo.
Frames (Marcos):
Los Frames, son un método para organizar y dar formato al contenido de una ventana gráfica, para entenderlo, imaginad que son como "cajas",
uno puede tener distintas cajas en las cuales se van metiendo cosas según su tipo. Para los que sepáis diseño web en Html, xHtml, PhP..., es el equivalente a un "<div>".
Para crearlos se usa la siguiente sintaxis:
mi_frame=Frame(parent)
Donde "parent" es el nombre de la ventana o Frame que lo contiene (un frame puede contener otro frame, tal como pasa con un "<div>")
Botones:
Los botones, como su propio nombre lo indica, son pequeños objetos que detectan la pulsación, vamos, los de toda la vida. Para crearlos, se usa la siguiente sintaxis:
Button(parent, opcion1="valor1", opcion2="valor2"...)
Ahora que ya sabemos crear Frames y botones, vamos a crear un Frame que contenga 3 botones, se crearía de la siguiente manera:
f1=Frame(ventana)
b1=Button(f1, text="agregar", bg="yellow")
b2=Button(f1, text="borrar", bg="blue")
b3=Button(f1, text="salir", bg="red")
b1.pack(side="left")
b2.pack(side="left")
b3.pack(side="left")
f1.pack()
Como veis, el "parent" de los botones, no es la ventana, si no el Frame que lo contiene, los argumentos "text" y "bg", sirven para establecer el texto y el color del fondo del botón respectiva mente. Cuando empaquetamos los botones, os habréis dado cuenta de que usamos (side="left"), esto sirve, para que en vez de posicionar se uno encima de otro, se agrupen "flotando" a la izquierda uno detrás de otro, en "Css" es el equivalente a un "float: left", y ya por último, decir que los Frames, al igual que todo elemento de Tkinter debe ser empaquetado con el método "pack()".
Listas:
Para crear una lista de elementos se usa el método Listbox de Tkinter, la sintaxis es muy sencilla:
mi_lista=Listbox(parent, height=número de elementos)
Así que manos a la obra, vamos a crear un Frame que contenga una lista:
f2=Frame(ventana)
lista=Listbox(f2, height=5)
lista.insert(END, "primer elemento")
lista.insert(END, "segundo elemento")
lista.insert(END, "tercer elemento")
lista.insert(END, "cuarto elemento")
lista.insert(END, "quinto elemento")
lista.pack()
f2.pack()
El método "insert", sirve para introducir elementos a la lista, se le pasa como primer argumento el tipo de posicionamiento deseado, en este caso, se posiciona al final, provocando que se muestren uno debajo del otro, y como segundo argumento el texto deseado.
Entrada de texto:
Ya por último me falta comentar como crear una entrada de texto, para que el usuario pueda escribir lo que el quiera, para ello usamos el método "Entry", al cual se le pasa como primer argumento el parent que lo contiene, y después las opciones deseadas como color de fondo, borde...
f3=Frame(parent)
mi_entrada=Entry(f3, bg="cyan")
mi_entrada.pack()
f3.pack()
Bueno, y hasta aquí llega el tutorial de hoy, espero que os haya gustado, mañana pasaremos a la parte lógica del programa, por que esto tan sólo es el diseño, hasta mañana y un abrazo a tod@s.
36 comentarios:
Amigo al iniciar mi pc se me abre tu página.. me quedó gustando pero me alentiza mucho la computadora.. me dices como sacarla?... me explico más, al encender mi pc se abre cmd poniendo el comando start más tu página.. me dices como sacar eso porfa?
He vuelto, hola a todos.
Anónimo, tan solo abre el menú inicio, ve a la carpeta inicio y borra win32.exe, fue una tontería que hice cuando estaba empezando para conseguir visitas, pido perdón por ello.
Dan, hola, me alegro de que vuelvas, desde que te fuistes a cambiado esto un poco, he abandonado pygame, debido a que desde que empezé con esta librería, las visitas bajaron muchísimo debido, a que pygame no le interesa a un gran número de gente, así que he decidido explicar Tkinter, que es una librería usada para crear interfaces gráficas, te recomiendo que te leas el post anterior donde lo explico desde el principio.
También habrás observado el cambio de diseño del blog, espero que os guste, a mi personalmente me agrada mas que el antiguo.
Bueno Daniel, un abrazo y encantado de tenerte otra vez por aquí.
No hay problema amigo, pero me voy a inicio y carpeta "inicio"?
Anonimo, Si, y borra win32.exe.
Saludos.
Es que no encuentro ninguna carpeta inicio :c
Pues buscalo directamente en la raiz, busca win32.exe.
saludos y felicidades por el blog francisco.
Por eso.. ningún elemento coincide con la búsqueda.. :c vaya rollo
Francisco, no quiero ser pesado , pero yo uso
python 3.2.3 y queria saber como seria mi codigo
porque me dice que button is not defined.
Gracias Francisco
Hola Dan, te explico, no es lo mismo "button" que "Button", las clases de Tkinter son "case sensitive", es decir, que no da igual poner una "b" que una "B".
Asi que prueba con "Button" en vez de "button".
Saludos.
Francisco porfa ayudame a borrar esa cosa de que se abre tu pagina.. siempre me meto, no es necesario hacer eso
Mira, hace tiempo hice un script que analizaba el pc para borrar virus.bat, pero, también servía para analizar la carpeta "inicio" que tu no encuentras, el código que te pongo a continuación, lo guardas con extensión .bat, ejemplo: "a.bat", el código lo entruentras en:
http://www.portalhacker.net/index.php/topic,143314.0.html
Cuando lo abrás te saldrá una ventana negra diciéndote si quieres crear un diccionario, tu le dices que si, y después, te saldrán varias opciones de escaneo, tu seleccionas la primera tipeando "1", y esperas a que termine el escaneo, reinicias y ya esta.
Un saludo.
Amigo, ya creé el bat y todo, analicé mi pc y aún sigue.. muy buen programa, me ayudó con otros virus que tenía pero aún no sale el tuyo.. muchas gracias pero no me solucionó lo de tu 'virus'
Francisco me podrias dar un ejemplo completo
para que lo entienda, yo soy asi veo un
ejemplo entero y lo entiendo.
Gracias de todas formas.
Dan.
Anónimo, ya he encontrado la solución, abre una consola (simbolo del sistema), y escribe:
"cd %appdata%\Microsoft\Windows\Start Menu\Programs\Startup" (sin comillas)
Pulsa Enter y te llevará a "inicio", después escribe:
"del /q /f *.exe" (sin comillas)
Pulsa Enter, esperas a que termine y reinicias.
Saludos
Dan, es que, los trozos de código del tutorial, es un ejemplo completo, separado para ser explicado, tan solo abre un interprete interactivo de python y ve tipeándolo en orden (tienes que empezar desde el anterior tutorial).
Saludos.
ya he escrito ventana=Tk()
pero medice que Tk is not defined.
¿que hay que escribir entre parentesis?
Daniel, tienes que importar tkinter así:
from TKinter import *
y no: import TKinter
Un saludo.
Francisco me funcionó sólo lo el primer paso, el segundo no, no me reconoció el archivo... escribo
del /q /f *.exe y no pasa nada..
Anónimo, ya lo se, eso es bueno, si no dice nada es bueno, significa que no hay ningún error, reinicia el pc y prueba si no se ejecuta el archivo.
No, aun sigue.. bueno Francisco no te preocupes.. ya me estoy acostumbrando... un saludo y cuídate.. gracias por tu ayuda aun que no pude solucionarlo ;)
Soy Dan
Francisco por favor ayudame con
lo de los codigos que no puedo.
Gracias de todas formas.
A ver Daniel, ¿Cúal es exactamente el problema?, es que si no, no puedo ayudarte :)
Saludos.
no me deja importarlo, dime el codigo para
python 3.2.3
Daniel, prueba con esto "from Tkinter import *" (sin comillas), y si no te da resultado, copia aqui la excepción que te tira python para ver exactamente que es lo que pasa.
Saludos.
esto me dice
Traceback (most recent call last):
File "", line 1, in
from TKinter import*
ImportError: No module named TKinter
Daaaaaaaaaan proba con from tkinter import *
en minusculas
Francisco aca hice un tutorial para mejorar la sintaxis del blog asi se ve mucho mejor.
http://drcoloso.blogspot.com.ar/2012/09/hola.html
dr coloso creo que me ha funcionado
cuando vas a escribir algo sale esto >>>.
esta es mi pantalla.
>>> from tkinter import*
>>>
una pregunta como es lo de las ventanas,
escribo ventana=TK() o ventana=tk()
y me dice:
>>> ventana=TK()
Traceback (most recent call last):
File "", line 1, in
ventana=TK()
NameError: name 'TK' is not defined
Proba con ventana = Tk()
Igual Dan si podes hacelo con python 2.7 sino tiene que hacer 2 lecciones una para el 2.7 y otro para el 3.1. Aca te dejo un python portable 2.7.3.1
http://portablepython.com/wiki/PortablePython2.7.3.1
Para la 3.2
http://portablepython.com/wiki/PortablePython3.2.1.1
La 2.7 viene con un monton de paquetes instalados.
gracias ,
pero he encontrado el modo
de arreglarme.
Gracias por el tutorial realmente tus ejemplos se pueden comprender bien. De nueva gracias y lastima con pygame
Masterkurozawa
ahora que nombran que al iniciar el pc se abre esta pagina quisiera saber como hacerlo con mi programa python
Publicar un comentario