Как я могу создать простое окно сообщения в Python?

Я ищу тот же эффект как alert() в JavaScript.

Я записал простой веб-интерпретатор этим днем с помощью Twisted.web. Вы в основном отправляете блок кода Python через форму, и клиент приезжает и захватывает его и выполняет его. Я хочу смочь сделать простое всплывающее сообщение, не имея необходимость переписывать целый набор шаблона wxPython, или TkInter кодируют каждый раз (так как код отправлен через форму и затем исчезает).

Я попробовал tkMessageBox:

import tkMessageBox
tkMessageBox.showinfo(title="Greetings", message="Hello World!")

но это открывает другое окно в фоновом режиме с tk значком. Я не хочу это. Я искал некоторый простой код wxPython, но он всегда требовал установки класса и ввода цикла приложения и т.д. Нет ли никакой простой, способ без выгод сделать окно сообщения в Python?

98
задан Carson Myers 3 June 2010 в 04:07
поделиться

4 ответа

Вы смотрели easygui ?

import easygui

easygui.msgbox("This is a message!", title="simple gui")
48
ответ дан 24 November 2019 в 05:07
поделиться

На Mac в стандартной библиотеке python есть модуль под названием EasyDialogs. Существует также версия для windows (основанная на ctypes) по адресу http://www.averdevelopment.com/python/EasyDialogs.html

Если для вас это важно: она использует родные диалоги и не зависит от Tkinter, как уже упомянутая easygui, но может иметь не так много возможностей.

9
ответ дан 24 November 2019 в 05:07
поделиться

В 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")
9
ответ дан 24 November 2019 в 05:07
поделиться

Предоставленный вами код в порядке! Вам просто нужно явно создать «другое окно в фоновом режиме» и скрыть его с помощью этого кода:

import Tkinter
window = Tkinter.Tk()
window.wm_withdraw()

Прямо перед вашим окном сообщений.

19
ответ дан 24 November 2019 в 05:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: