Я ищу тот же эффект как alert()
в JavaScript.
Я записал простой веб-интерпретатор этим днем с помощью Twisted.web. Вы в основном отправляете блок кода Python через форму, и клиент приезжает и захватывает его и выполняет его. Я хочу смочь сделать простое всплывающее сообщение, не имея необходимость переписывать целый набор шаблона wxPython, или TkInter кодируют каждый раз (так как код отправлен через форму и затем исчезает).
Я попробовал tkMessageBox:
import tkMessageBox
tkMessageBox.showinfo(title="Greetings", message="Hello World!")
но это открывает другое окно в фоновом режиме с tk значком. Я не хочу это. Я искал некоторый простой код wxPython, но он всегда требовал установки класса и ввода цикла приложения и т.д. Нет ли никакой простой, способ без выгод сделать окно сообщения в Python?
Вы смотрели easygui ?
import easygui
easygui.msgbox("This is a message!", title="simple gui")
На Mac в стандартной библиотеке python есть модуль под названием EasyDialogs
. Существует также версия для windows (основанная на ctypes) по адресу http://www.averdevelopment.com/python/EasyDialogs.html
Если для вас это важно: она использует родные диалоги и не зависит от Tkinter, как уже упомянутая easygui
, но может иметь не так много возможностей.
В Windows можно использовать ctypes с библиотекой user32:
from ctypes import c_int, WINFUNCTYPE, windll
from ctypes.wintypes import HWND, LPCSTR, UINT
prototype = WINFUNCTYPE(c_int, HWND, LPCSTR, LPCSTR, UINT)
paramflags = (1, "hwnd", 0), (1, "text", "Hi"), (1, "caption", None), (1, "flags", 0)
MessageBox = prototype(("MessageBoxA", windll.user32), paramflags)
MessageBox()
MessageBox(text="Spam, spam, spam")
MessageBox(flags=2, text="foo bar")
Предоставленный вами код в порядке! Вам просто нужно явно создать «другое окно в фоновом режиме» и скрыть его с помощью этого кода:
import Tkinter
window = Tkinter.Tk()
window.wm_withdraw()
Прямо перед вашим окном сообщений.