[pyar] Consulta sobre TKinter

Carlos Miguel FARIAS carlosmiguelfarias en gmail.com
Lun Mar 2 20:50:40 -03 2020


El lun., 2 mar. 2020 a las 12:07, Alves Leonardo Martin (<
alves.leonardomartin en gmail.com>) escribió:

> La ventana emergente ya esta desplegada en el monitor y le hago foco con
> un click del mouse
>
> El lun., 2 mar. 2020 a las 12:00, <pyar-request en python.org.ar> escribió:
>
>> Envíe los mensajes para la lista pyar a
>>         pyar en python.org.ar
>>
>> Para subscribirse o anular su subscripción a través de la WEB
>>         http://listas.python.org.ar/listinfo/pyar
>>
>> O por correo electrónico, enviando un mensaje con el texto "help" en
>> el asunto (subject) o en el cuerpo a:
>>         pyar-request en python.org.ar
>>
>> Puede contactar con el responsable de la lista escribiendo a:
>>         pyar-owner en python.org.ar
>>
>> Si responde a algún contenido de este mensaje, por favor, edite la
>> linea del asunto (subject) para que el texto sea mas especifico que:
>> "Re: Contents of pyar digest...". Además, por favor, incluya en la
>> respuesta sólo aquellas partes del mensaje a las que está
>> respondiendo.
>>
>>
>> Asuntos del día:
>>
>>    1. Re: tkinter y python 3 (Carlos Miguel FARIAS)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Mon, 2 Mar 2020 09:48:03 -0300
>> From: Carlos Miguel FARIAS <carlosmiguelfarias en gmail.com>
>> To: Python Argentina <pyar en python.org.ar>
>> Subject: Re: [pyar] tkinter y python 3
>> Message-ID:
>>         <
>> CACqOu4xV9FZioVaN5uMxN48zYcQhbjJPnV94J1mBJzmA+dn_pg en mail.gmail.com>
>> Content-Type: text/plain; charset="utf-8"
>>
>> Cuando inicias la captura de eventos de las ventanas?
>>
>> El jue., 27 feb. 2020 a las 10:47, Alves Leonardo Martin (<
>> alves.leonardomartin en gmail.com>) escribió:
>>
>> > Buen día
>> > necesito si me pueden ayudar en algo
>> > estoy con tkinter y tengo que preguntar si existe o tengo foco o esta
>> > desplegada una determinada ventana emergente, pero no encuentro como ...
>> > pregunte de diferentes formas pero no puedo
>> >
>> >
>> > import time
>> > time.sleep(0.1)
>> >
>> >
>> > from tkinter import *
>> > ventana1 = Tk()
>> >
>> >
>> > import tkinter as tk
>> > ventana2 = tk.Tk()
>> >
>> >
>> > from tkinter import messagebox
>> >
>> >
>> > if ventana1.title("Mensaje") == True:
>> >     messagebox.showinfo('Message title', 'encuentró')
>> >     ventana1.destroy()
>> >
>> >
>> > time.sleep(1)
>> > if ventana2.title("Mensaje") == True:
>> >     messagebox.showwarning('Message title', 'encuentró1')
>> >     ventana2.destroy()
>> >
>> >
>> >
>> > time.sleep(1)
>> > if ventana1.title("Mensaje") is True:
>> >     messagebox.showwarning('Message title', 'encuentró2')
>> >     ventana1.destroy()
>> >
>> >
>> >
>> > time.sleep(1)
>> > if ventana2.title("Mensaje") is True:
>> >     messagebox.showwarning('Message title', 'encuentró2')
>> >     ventana2.destroy()
>> >
>> >
>> > if ventana1.title() == "Mensaje":
>> >     messagebox.showwarning('Message title', 'encuentró3')
>> >     ventana1.destroy()
>> >
>> >
>> > time.sleep(1)
>> > if ventana2.title() == "Mensaje":
>> >     messagebox.showwarning('Message title', 'encuentró4')
>> >     ventana2.destroy()
>> >
>> >
>> > if ventana1.title('Mensaje'):
>> >     messagebox.showinfo('Message title', 'encuentró')
>> >     ventana1.destroy()
>> >
>> >
>> > time.sleep(1)
>> > if ventana2.title("Mensaje"):
>> >     messagebox.showwarning('Message title', 'encuentró1')
>> >     ventana2.destroy()
>> >
>> >
>> > me podrán ayudar ?
>> >
>> > _______________________________________________
>> > Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> > Sitio web: http://www.python.org.ar/
>> >
>> > Para administrar la lista (o desuscribirse) entrar a
>> > http://listas.python.org.ar/listinfo/pyar
>> >
>> > 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/20200302/2fa02153/attachment-0001.html
>> >
>>
>> ------------------------------
>>
>> Subject: Pié de página del digest
>>
>> _______________________________________________
>> 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/
>>
>>
>> ------------------------------
>>
>> Fin de Resumen de pyar, Vol 121, Envío 2
>> *****************************************
>>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar


Que observo:
Hay cosas del código python básico que no es apropiado.
Preguntar si algo "== True" o "is True", aunque teóricamente funciona queda
horrible.
Se importa dos veces el mismo módulo (no tendría razón evidente). Las
importaciones, al no estar condicionadas, deberían estar al principio.
  En el código, se activan dos pantallas principales ventana1 y ventana2,
no veo cual es la ventana emergente. Tk() crea una ventana de fondo o
principal, normalmente se la denomina aplicación y es sobre la cual se
dispara la captura de eventos (se crearon dos ventanas principales, ninguna
emergente o en términos de tk sería Toplevel.
Las primeras dos preguntas if ventana1.title("mensaje") == True o is True
no funcionan, porque el método title() de Tk es un método que fija
(establece) el título (cuando se indica parámetro) o devuelve el título
cuando no se indica parámetro.
Por eso si cumple las condiciones de encuentro3 cuando compara con el
mensaje.
Las cuadros de diálogo se despliegan porque está activado un entorno de
tkinter (mediante Tk). En este caso, un Tk sobra. Las ventanas
subsiguientes deberían ser Toplevel (el cuadro de dialogo lo es, y además
modal).
Además, no se crea ningún widget que pueda capturar el evento click del
ratón, tampoco se establece un bind contra las ventanas principales para
que hagan algo al recibir el evento.
Y vuelvo a la pregunta original. En el código pasado no se activa la
captura de eventos.
Sería interesante obtener algún libro sobre python y tkinter o algún
minicurso para no estar haciendo mil pruebas al voleo (al menos, podría
leerse la ayuda que viene con Python).
Saludos: Miguel
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20200302/13cdcbd0/attachment-0001.html>


Más información sobre la lista de distribución pyar