[pyar] Consulta Tkinter
patricio tula
tula.patricio en gmail.com
Vie Mayo 9 14:54:41 ART 2014
Muchas gracias por los consejos, trataré de aplicarlos.
Me parece muy necesaria e importante la modularización del programa no solo
para ordenar el GUI sino para agregarle otras estructuras que estoy
programando en paralelo de manejo base de datos (en sqlalchemy) y lectura
de datos (dev).
Gracias de nuevo :-)
Saludos,
2014-05-09 13:59 GMT-03:00 Roberto Gomez <rgomez en autotrol.com.ar>:
> patricio tula wrote:
>
>> Claro, es eso lo que busco.
>> Lo implementé pero no está funcionando. Por lo que leí acá [1
>> <http://infohost.nmt.edu/tcc/help/pubs/tkinter/tkinter.pdf>] es un
>>
>> método de widget y lo implementé tal cual pero no bloquea las ventanas
>> en niveles inferiores.
>> Mando el código. Cualquier otra corrección o consejo será bienvenido :-).
>> Saludos,
>>
>>
>> 2014-05-09 12:10 GMT-03:00 Roberto Gomez
>> <rgomez en autotrol.com.ar
>> <mailto:rgomez en autotrol.com.ar>>:
>>
>>
>> patricio tula wrote:
>>
>> Gracias por el aporte rober :). Acabo de cambiar eso.
>>
>> Otra tema que todavìa no pude solucionar y quisiera consultar es
>> como
>> bloquear una ventana. En particular, en el fragmento que mandé
>> antes no
>> aparece la necesidad. Sin embargo, cuando arranca el programa la
>> primer
>> ventana que aparece no cierra y sigue funcionando. Existe algún
>> método
>> para bloquearla mientras el usuario interactúa con otras
>> ventanas Toplevels?
>>
>>
>> Saludos,
>> Pato
>>
>>
>> No entiendo bien la pregunta, así que voy a suponer.
>> Si queres que una ventana conserve el foco y que hasta que no la
>> cierres no puedas interactuar con ninguna otra ventana de tu
>> aplicación, investigá el método wait_window(window) de los
>> Toplevels. Este método hace que un toplevel espere a que cierres
>> 'window' para devolver el control. Si 'window' es el mismo toplevel,
>> entonces se queda esperando a que se cierre él mismo.
>>
>> Si esto no tiene nada que ver con lo que preguntás, hacéte un
>> ejemplito autocontenido, decí qué es lo que hace y qué es lo te
>> gustaría que hiciera.
>>
>> Saludos,
>>
>> rober
>>
>
> Le agregué sólamente una linea que ejecuta grab_set() en el Toplevel para
> pasarle primero el control a esa ventana y luego que se ejecute el
> wait_window para que no la suelte.
>
> def PrestamosHerramientas():
> Prestamos = Toplevel()
> nombreApellido=StringVar(Prestamos)
> dni=StringVar(Prestamos)
> Prestamos.title("LABI-Sistema de control de prestamos-Prestamos")
> #Nombre y apellido
> L1=Label(Prestamos,text="Nombre y Apellido").grid(row=0,column=0)
> E1=Entry(Prestamos,textvariable=nombreApellido,
> bd=5).grid(row=0,column=1)
> #DNI
> L2=Label(Prestamos, text="DNI").grid(row=1,column=0)
> E2=Entry(Prestamos, textvariable=dni,bd=5).grid(row=1, column=1)
> #herramientas prestadas
> L3=Label(Prestamos,text="Herramientas:").grid(row=2,column=0)
> #TODO Faltan metodos de lectura de codigo de barras e imprimir la
> herramienta leida como label
> def Prestar():
> Prestamos.destroy()
> Prestar = Toplevel()
> Prestar.geometry("200x100")
> Prestar.title("Prestar")
> PrestarNyALabel = Label(Prestar,
> text=nombreApellido.get()).pack()
> PrestarDNILabel = Label(Prestar, text=dni.get()).pack()
> PrestarHerramientasLabel = Label(Prestar,
> text="Herramientas").pack()
> PrestarBoton = Button(Prestamos, text="PRESTAR",command=
> Prestar).grid(row=3,column=1)
> *Prestamos.grab_set()*
> Prestamos.wait_window(Prestamos)
>
> Igualmente, crítica constructiva y según mi experiencia y gusto, la
> aplicación así como la estás planteando (usando funciones) está bastante
> chancha (no offence). Tarde o temprano, más temprano que tarde, se va a
> encarajinar tanto que la va a mantener Cadorna, y cada nueva funcionalidad
> que quieras agregar/modificar va a ser un parto.
>
> Lo que se suele hacer es implementar cada "formulario/dialog" como una
> clase que, por lo menos, herede de un Toplevel o de un Frame e implementar
> tus funcionalidades ahí. Es más, ideal es tener una clase base, que hereda
> de Toplevel o Frame, y cada uno de tus formularios hereda de esa clase
> base. Entonces todos tus formularios pueden tener el mismo look&feel xej
> botones de aceptar, cancelar, hot-keys para el help, etc.
>
> Te recomiendo el libro de Grayson que ya se debe conseguir fácilmente por
> ahí, que si bien es un poco viejito, no sólamente ahonda en Tkinter, sino
> en diseño y buenas prácticas para la construcción de gui(s).
>
> Mis 0.00001 centavos,
> saludos
>
> rober
>
>
>
>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140509/ed91eb23/attachment-0001.html>
More information about the pyar
mailing list