elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  wait windows para tkinter...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: wait windows para tkinter...  (Leído 5,496 veces)
El mas antiguo

Desconectado Desconectado

Mensajes: 103



Ver Perfil
wait windows para tkinter...
« en: 27 Octubre 2022, 02:05 am »

Hola gente, ¿cómo están? Bueno ahora hago un cambio de rol,
vengo a traerles un aporte, lo que ocurre es que estuve estudiando
bastante(hace ya mucho tiempo) VFP y en ese lenguaje se utilizaba
muchísimo, pero muchísimo una wait windows y en python por más
que busco no encuentro nada parecido.-
Lo dejo a vuestra consideración y cualquier aporte o crítica será
bien venida.-
 
Código
  1. import tkinter as tk
  2. from tkinter import ttk
  3. from functools import partial
  4.  
  5. def cerrar(*waitVentana):
  6.    waitVentana[0].destroy()
  7.  
  8.  
  9. def posicionarVentana(root):
  10.    ventanaRaiz = root.geometry()
  11.    ventanaRaiz = ventanaRaiz.replace('x', ',')
  12.    ventanaRaiz = ventanaRaiz.replace('+', ',')
  13.    dimPos = ventanaRaiz.split(',')
  14.  
  15.    xInicio = int(dimPos[0]) + int(dimPos[2])
  16.    yAlto = int(dimPos[3]) -50
  17.  
  18.    return xInicio, yAlto
  19.  
  20. def ventanaMensaje(texto, root):
  21.    posicion = posicionarVentana(root)
  22.    mensaje = texto
  23.    waitVentana = tk.Toplevel(root)
  24.    waitVentana.geometry('+%d+%d' % (posicion[0], posicion[1]))
  25.    waitVentana.overrideredirect(1)
  26.    waitVentana.grab_set()
  27.    waitVentana.focus_set()
  28.  
  29.    waitVentana.bind('<Escape>', partial(cerrar, waitVentana))
  30.  
  31.    frame = ttk.Frame(waitVentana)
  32.    frame.pack()
  33.    label = tk.Label(frame, text=mensaje,
  34.        font=("vardana", 14), borderwidth=6, relief="ridge")
  35.    label.pack()
  36.  
  37.    waitVentana.after(5000, waitVentana.destroy)
  38.    frame.after(5000, frame.destroy)
  39.  

Código
  1. def ventanaMensaje(texto, root):

Esta es la función principal y hay que pasarle el texto a mostrar
y el nombre de la ventana que la invoca para darle una posición
relativa.-

Slds. Daniel ☕☕☕


En línea

TheLonelyPain

Desconectado Desconectado

Mensajes: 17



Ver Perfil
Re: wait windows para tkinter...
« Respuesta #1 en: 10 Noviembre 2022, 22:45 pm »

Hola, se que respondo tarde. :laugh:
Bueno si te refieres como "waitwindos" me imagino que lo que quieres hacer
es que haya por ejemplo un tiempo de delay en la ventana antes de ejecutarse?
Si es asi, python tiene una libreria llamada time y puedes utilizar el modulo
de sleep.
Un ejemplo sencillo seria lo siguiente:
Código
  1. import time # se importa time
  2. sys,stdout.write("HolaMundo")
  3. time.sleep(4) #aqui se definen 4 segundos # se llama time junto a su modulo
  4.  
Podrias replicar lo mismo pero para tu ventana.


En línea

reymosquito

Desconectado Desconectado

Mensajes: 81


Ver Perfil
Re: wait windows para tkinter...
« Respuesta #2 en: 11 Noviembre 2022, 09:44 am »

TheLonelyPain

Hola, perdón por corregirte , pero no quiero que esa respuesta quede como válida  por si la lee alguien más y pretende aplicarla.
Si bien sleep funciona con python, sleep trae conflictos con tkinter, por eso existe una función propia llamada after.
pongo un ejemplo:

Código
  1. import tkinter as tk
  2.  
  3. def muestra():
  4.    def eliminar_ventana():
  5.        ventana.destroy()
  6.  
  7.    ventana = tk.Toplevel(master=principal)
  8.    ventana.geometry("400x200")
  9.    tk.Label(ventana, text="Esta copia se autodestruirá en 5 segundos").pack()
  10.    ventana.after(5000,eliminar_ventana)
  11.  
  12. principal = tk.Tk()
  13. principal.geometry("200x200")
  14. tk.Button(principal,text='Abrir secundaria', command=muestra).pack()
  15. principal.mainloop()

Saludos.
« Última modificación: 11 Noviembre 2022, 09:46 am por reymosquito » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
wait() en c++ (windows)
Programación C/C++
soyloqbuskas 9 12,814 Último mensaje 22 Diciembre 2011, 12:41 pm
por BlackZeroX
Wait for new IP J.Downloader
Software
Caster 8 3,456 Último mensaje 7 Enero 2012, 19:50 pm
por Caster
duda con wait() y notify()
Java
m@o_614 0 1,816 Último mensaje 12 Septiembre 2015, 01:13 am
por m@o_614
[Python3 + tkinter] Ayuda ventanas en cascada tkinter
Scripting
darkweb64 2 4,006 Último mensaje 11 Diciembre 2015, 18:04 pm
por darkweb64
Ayuda para el metodo Wait()
Java
ITenZangetsuB 2 4,647 Último mensaje 1 Julio 2020, 20:35 pm
por MoonLord07
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines