Estoy buscando el mismo efecto que alert()
en JavaScript.
Esta tarde escribí un intérprete simple basado en web usando Twisted.web. Básicamente, envías un bloque de código Python a través de un formulario, y el cliente viene, lo toma y lo ejecuta. Quiero poder hacer un mensaje emergente simple, sin tener que volver a escribir un montón de código wxPython o TkInter repetitivo cada vez (ya que el código se envía a través de un formulario y luego desaparece).
Probé tkMessageBox:
import tkMessageBox
tkMessageBox.showinfo(title="Greetings", message="Hello World!")
pero esto abre otra ventana en segundo plano con un icono tk. No quiero esto. Estaba buscando un código wxPython simple, pero siempre requería configurar una clase e ingresar un bucle de aplicación, etc. ¿No existe una forma simple y sin problemas de crear un cuadro de mensaje en Python?
¿Has mirado a easygui ?
fuente
También puedes colocar la otra ventana antes de retirarla para que coloques tu mensaje
fuente
¡El código que presentó está bien! Solo necesita crear explícitamente la "otra ventana en segundo plano" y ocultarla, con este código:
Justo antes de su buzón de mensajes.
fuente
El módulo PyMsgBox hace exactamente esto. Tiene funciones de cuadro de mensaje que siguen las convenciones de nomenclatura de JavaScript: alert (), confirm (), prompt () y password () (que es prompt () pero usa * cuando escribe). Estas llamadas de función se bloquean hasta que el usuario hace clic en un botón Aceptar / Cancelar. Es un módulo de Python puro multiplataforma sin dependencias.
Instalar con:
pip install PyMsgBox
Uso de muestra:
Documentación completa en http://pymsgbox.readthedocs.org/en/latest/
fuente
AssertionError: Tkinter is required for pymsgbox
pip
, pero de hecho, parte de las librerías se instalan al revés: usando el administrador de paquetes del sistema. Entonces lo instalépython-tk
usando mi administrador de paquetes. Estoy usando Python 2.7 en Debian.En Windows, puede usar ctypes con la biblioteca user32 :
fuente
En Mac, la biblioteca estándar de Python tiene un módulo llamado
EasyDialogs
. También hay una versión de Windows (basada en ctypes) en http://www.averdevelopment.com/python/EasyDialogs.htmlSi te importa: usa diálogos nativos y no depende de Tkinter como el ya mencionado
easygui
, pero puede que no tenga tantas funciones.fuente
El último número (aquí 1) se puede cambiar para cambiar el estilo de la ventana (¡no solo los botones!):
Por ejemplo,
dará esto :
fuente
Utilizar
La ventana maestra debe crearse antes. Esto es para Python 3. Esto no es para wxPython, sino para tkinter.
fuente
fuente
También puedes colocar la otra ventana antes de retirarla para que coloques tu mensaje
Tenga en cuenta: Esta es la respuesta de Lewis Cowles solo con Python 3ified, ya que tkinter ha cambiado desde Python 2. Si desea que su código sea compatible con backwords, haga algo como esto:
fuente
No es el mejor, aquí está mi cuadro de mensaje básico usando solo tkinter.
fuente
echa un vistazo a mi módulo de Python: pip install quickgui (Requiere wxPython, pero no requiere conocimiento de wxPython) https://pypi.python.org/pypi/quickgui
Puede crear cualquier número de entradas (proporción, casilla de verificación, casilla de entrada), organizarlas automáticamente en una única interfaz gráfica de usuario.
fuente
Una versión reciente del cuadro de mensajes es el módulo prompt_box. Tiene dos paquetes: alerta y mensaje. El mensaje le brinda un mayor control sobre el cuadro, pero toma más tiempo escribirlo.
Ejemplo de código de alerta:
Ejemplo de código de mensaje:
fuente
módulo ctype con roscado
Estaba usando el cuadro de mensajes tkinter pero bloqueaba mi código. No quería saber por qué, así que usé el módulo ctypes en su lugar.
por ejemplo:
obtuve ese código de Arkelis
Me gustó que no bloqueara el código, así que trabajé en él y agregué un subproceso para que se ejecutara el código posterior.
ejemplo para mi código
para estilos de botones y números de iconos:
fuente
Puede usar
pyautogui
opymsgbox
:Usar
pymsgbox
es lo mismo que usarpyautogui
:fuente