Foros del Web » Programando para Internet » Python »

Tcl/tk->tkinter?

Estas en el tema de Tcl/tk->tkinter? en el foro de Python en Foros del Web. Lo q me interesa saber, es q es Tcl... por lo q leí en la wikipedia es un especie de lenguaje de programación o algo ...
  #1 (permalink)  
Antiguo 03/07/2009, 17:28
 
Fecha de Ingreso: junio-2009
Mensajes: 10
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta Tcl/tk->tkinter?

Lo q me interesa saber, es q es Tcl... por lo q leí en la wikipedia es un especie de lenguaje de programación o algo asi... y q las iniciales Tk significan "tool kit" y q aparentemente con eso se puede realizar una interfaz gráfica, q es mi objetivo actual...
Pero lo q no entiendo es q función cumple tkinter, a todo esto?
y si lo puedo utilizar en win32 para hacer GUI's con python...
  #2 (permalink)  
Antiguo 04/07/2009, 15:05
 
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 90
Antigüedad: 18 años, 10 meses
Puntos: 2
Respuesta: Tcl/tk->tkinter?

Hola.

Yo también estoy aprendiendo a programar con interfaz gráfica en Python,
y te cuento que comencé con las mismas dudas que vos.
Hace 3 días más o menos que estoy con esto, y sin embargo le estoy encontrando la vuelta.

Tcl y Tk están relacionados con interfaces gráficas, pero no sé bien de dónde vienen esas ''cosas extrañas''. Sin embargo, no tiene ninguna importancia. No te distraigas tratando de descifrar qué son, ni de donde vienen.
Lo que tenés que tener claro es que esas ''cosas extrañas'' han inspirado y servido de base a la librería TKinter de Python.

Si lo que te interesa es programar con interfaz gráfica en Python, hay muchísimas librerías disponibles. Una muy famosa, que al parecer da muy buenos resultados, es wxPython, pero no sé nada de ella.
TKinter es la librería por defecto para desarrollar interfaz gráfica que viene integrada con Python.

Según qué versión de Python estés usando, puede que se cargue distinto.
En la versión 3.* que uso yo, se carga con

from tkinter import *

En versiones anteriores se carga con Tkinter en vez de tkinter, o sea,
cambia la T mayúscula inicial.

Así que, cuando vayas a ver tutoriales y manuales, tenés que tener en cuenta que están escritos para las versiones 2.* de Python, que usan la forma vieja de importar tkinter.
Lo único que hay que hacer es copiar los ejemplos, y luego modifcarlos en esa sola letra que ha cambiado.

Otro malestar en cuanto a los ejemplos, es que hacen uso de la sentencia print, que al pasar a la vesión 3.* neceistan paréntesis, y entonces para que anden los ejemplos hay que modificar el programa en todas las líneas donde aparece la sentencia print.

Salvo esos detalles, todo lo demás funciona sin cambios, por lo general.

Te recomiendo el siguiente tutorial, que es muy básico, fácil, y te lleva de la mano en el aprendizaje de tkinter.

Tutorial de TKinter (en inglés)

Espero que no tengas problemas con el inglés, porque realmente el tutorial está muy bueno.

Una vez que hayas visto todos los ejemplos (te recomiendo mirar de a uno, con paciencia), te recomiendo que te quedes con una versión del ejemplo tt079.py, que contiene ingredientes básicos que me han parecido muy importantes.

En su momento verás que uno puede desarrollar la aplicación metiéndola toda en una class de Python. Hacer esto es muy recomendable, y todos tus programas debieran estar enfocados así, al usar TKinter.

Otro detalle es el uso de la construcción lambda de Python.
No sé cómo te llevás con eso de lambda, pero en todo caso no hay que complicarse la cabeza, y tratar de entender cómo se usa. Al revisar los ejemplos y ver las explicaciones, te vas a dar cuenta que es fácil usar lambda cuando hace falta, sin complicarse la mente demasiado.
Básicamente se usa para atar botones u otros elementos gráficos de la aplicación a determinadas funciones o métodos, de una forma correcta, evitando ciertos errores...

A partir del ejemplo tt079.py, vas a poder ir agregando y modificando elementos, y vas a ver que de a poco dominás el asunto.

Una vez que te hayas terminado ese tutorial, te recomiendo echarle un vistazo a este otro, que es una documentación bastante clara y completa sobre tkinter:
Introducción a TKinter (en inglés)

Cuando veas este segundo tutorial, te recomiendo tener en cuenta que algunos ejemplos pueden estar mal enfocados, respecto al programa tt079.py del primer tutorial.
Por ejemplo, puede que no usen el enfoque de clases para la aplicación, y puede que no expliquen muy bien lo del lambda para atar correctamente las aplicaciones a los widgets (botones, checkbox, etc.)

Te recomiendo que traduzcas esos ejemplos al enfoque del tt079.py, porque es lo que te va a resultar útil en el futuro.

Cualquier consulta que tengas, consultame.

Yo también estoy aprendiendo, quizá podamos ayudarnos mutuamente.

Saludos
  #3 (permalink)  
Antiguo 04/07/2009, 19:15
 
Fecha de Ingreso: junio-2009
Mensajes: 10
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Tcl/tk->tkinter?

Esto esta muy weno pero todavía me quedan algunas dudas y todavía no entiendo muchas de las funciones que propone python... creo por q soy más nuevo que tu wojojo
El tutorial esta muy weno para los begginers, aunque ahora por una disponibilidad de tiempo me esta frenando mucho el aprendizaje de python.
Lo que me gustaría saber y por lo poco q lei, me parece q no hay un IDE o algo parecido como el visual basic q muestre un ventana a donde se le van agregando los widget y desde ahi programando cado unos de los componentes con codigo para su funcionamiento

Gracias por tu ayuda, me sirvio de mucho

Última edición por moku; 04/07/2009 a las 19:36
  #4 (permalink)  
Antiguo 04/07/2009, 22:13
 
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 90
Antigüedad: 18 años, 10 meses
Puntos: 2
Respuesta: Tcl/tk->tkinter?

Para TKinter creo que no hay algo como eso.

Hay que programar a mano.
Pero bueno, en defensa de TKinter puedo decirte que es de programación bastante sencilla.
Por otro lado, si querés ver cómo anda el programa, no es tan complicado.

Yo, por ejemplo uso el IDLE estándar de Python, que tiene un editor de archivos fuentes para Python. El editor es sencillo de usar, tiene marcado de palabras clave, indentación, y una opción para ejecutar la aplicación.

Así que se puede ver inmediatamente si las cosas andan bien o no.

Lo que siempre digo es que hay que empezar. Esa es la unica manera de que los problemas se solucionen.

Yo manejo también lo básico del lenguaje mismo de Python, lo básico de TKinter, y aún así, con algo de perspicacia y sentido común las cosas más o menos van para adelante.

Python lo conozco hace apenas un mes o dos, y casi no he programado gran cosa.
Y TKinter lo conozco hace dos días, y he aprendido lo básico y necesario para poder empezar, y ya me siento confiado.

Así que te llevo apenas dos días de ventaja.
Haceme caso, tratá de leer el tutorial paso a paso y de copiar y correr los programas de ejemplo, y vas a ver que le agarrás la mano enseguida.

Otra cosa que no te he dicho.
Hay muchas otras opciones para hacer interfaz gráfica en Python, y muchas de ellas tienen eso que andás buscando, o sea un diseño más visual de los Widgets y la programación de sus componentes.
Por ejemplo, el wxPython, que es el más popular, tiene una herramienta que se llama Boa Constructor.

Yo no me meto con wxPython porque no es estándar, y no quiero complicarme la vida instalando librerías, porque instalar cosas siempre me hace renegar, nunca me anda nada bien, y no quiero perder tiempo con eso. Quiero algo que ya está instalado, y sé que anda, y que sólo tengo que aprender a usarlo.
No sé si hay ayudas gráficas para progamar con TKinter, si encontrás algo me avisás.

Saludos

Última edición por argentinator; 04/07/2009 a las 22:18 Razón: .
  #5 (permalink)  
Antiguo 04/08/2009, 23:42
 
Fecha de Ingreso: junio-2009
Mensajes: 10
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Tcl/tk->tkinter?

Uff volvi... y con dudas?
Quiero saber si para la versión 3.01 de Python el modulo Tkinter sufrio algunos cambios de sintaxis como la misma versión de python... ya que algunos scrips muy basicos como
Código:
from Tkinter import *
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()
no me cargan...
y de hecho la pag ofcial de Python hace mención q para las versiones upper 3.* el llamado del modulo es :
Código:
import tkinter
y no
Código:
import Tkinter
que es para la versiones viejas
pequeños cambios hacen que uno se vuelva loco tratando de descubrir q paso...

Y una cosa más.. leyendo por la "San Wikipedia" me informe que Tk es un lenguaje de programación tipo scrip. Entonces se me plantea la sig. duda...
¿Al final estoy programando en Python o en Tk?
  #6 (permalink)  
Antiguo 05/08/2009, 11:18
 
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 90
Antigüedad: 18 años, 10 meses
Puntos: 2
Respuesta: Tcl/tk->tkinter?

El único cambio que debieras hacer es poner "tkinter" en minúsculas.
Todo lo demás debiera funcionarte sin problema alguno.
  #7 (permalink)  
Antiguo 05/08/2009, 14:17
 
Fecha de Ingreso: junio-2009
Mensajes: 10
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Tcl/tk->tkinter?

La verdad no tengo idea de lo que paso... como soy principiante ignoro muchas de las funciones de Tcl/Tk. Pero ahora q cambie my Python por la version 3.1 puedo ejecutar los script sin ningún problema...

Otra ves de nuevo gracias... Argentinator :P
  #8 (permalink)  
Antiguo 06/08/2009, 07:05
Usuario no validado
 
Fecha de Ingreso: septiembre-2008
Ubicación: Cuba
Mensajes: 34
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Tcl/tk->tkinter?

hola

mira a ver que te parece Eric4, que es un IDE especifico para python que se integra con qt4 o qt3 que es para diseñar iu graficas,, este Eric4 tiene muchas ventajas para la escritura y edicion de codigo.

A mi me va muy bien con esto, por eso te lo recomiendo.

saludos

PD: tendrias que buscar documentacion de Eric4 y Qt4 o qt3 en la web, seguro que encuentras.
  #9 (permalink)  
Antiguo 06/08/2009, 11:06
 
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 90
Antigüedad: 18 años, 10 meses
Puntos: 2
Respuesta: Tcl/tk->tkinter?

Un problema básico que siempre ocurre al cambiar a las versiones 3.x de Python es el comando print.

En las versiones viejas se usa: print "Hola mundo"
En las versiones nuevas se usa: print("Hola mundo")

Yo diría que esa tontería es fuente de más de la mitad de problemas de compilación al cambiar versiones.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:56.