是否有一个messagebox类,我可以在程序成功或失败时显示一个没有庞大的GUI库或任何库的简单消息框。 (我的脚本只做一件事)。
另外,我只需要它在Windows上运行。
答案 0 :(得分:56)
您可以使用随Python一起安装的ctypes库:
import ctypes
MessageBox = ctypes.windll.user32.MessageBoxW
MessageBox(None, 'Hello', 'Window title', 0)
上面的代码适用于Python 3.x.对于Python 2.x,使用MessageBoxA
而不是MessageBoxW
,因为Python 2默认使用非unicode字符串。
答案 1 :(得分:11)
默认库中还有一对原型没有使用ctypes。
简单的消息框:
import win32ui
win32ui.MessageBox("Message", "Title")
其他选项
if win32ui.MessageBox("Message", "Title", win32con.MB_YESNOCANCEL) == win32con.IDYES:
win32ui.MessageBox("You pressed 'Yes'")
在win32gui中还有一个大致相当的一个,在win32api中也是另一个。所有人的文档似乎都在C:\Python{nn}\Lib\site-packages\PyWin32.chm
答案 2 :(得分:1)
快速而肮脏的方法是调用操作系统并使用“zenity”命令(默认情况下,子进程模块应包含在任何python发行版中,zenity也存在于所有主要的Linux中)。试试这个简短的示例脚本,它适用于我的Ubuntu 14.04。
import subprocess as SP
# call an OS subprocess $ zenity --entry --text "some text"
# (this will ask OS to open a window with the dialog)
res=SP.Popen(['zenity','--entry','--text',
'please write some text'], stdout=SP.PIPE)
# get the user input string back
usertext=str(res.communicate()[0][:-1])
# adjust user input string
text=usertext[2:-1]
print("I got this text from the user: %s"%text)
有关更复杂的对话框,请参阅zenity --help
答案 3 :(得分:1)
您还可以使用tkinter中的messagebox类:
from tkinter import messagebox
除非tkinter是您想要避免的巨大GUI。
用法很简单,即:
messagebox.FunctionName(title, message [, options])
使用FuntionName(showinfo,showwarning,showerror,askquestion,askokcancel,askyesno,askretrycancel)。
答案 4 :(得分:1)
PyMsgBox模块使用Python的tkinter,因此它不依赖于任何其他第三方模块。您可以使用pip install pymsgbox
安装它。
函数名称类似于JavaScript的alert()
,confirm()
和prompt()
函数:
>>> import pymsgbox
>>> pymsgbox.alert('This is an alert!')
>>> user_response = pymsgbox('What is your favorite color?')
答案 5 :(得分:0)
这与tkinter一起。
:href="sub.link"