我在JavaScript中寻找与 alert()
相同的效果 .
我今天下午用Twisted.web写了一个简单的基于网络的翻译 . 您基本上通过表单提交一个Python代码块,客户端来抓取它并执行它 . 我希望能够制作一个简单的弹出消息,而不必每次都重写一大堆样板wxPython或TkInter代码(因为代码通过表单提交然后消失) .
我试过tkMessageBox:
import tkMessageBox
tkMessageBox.showinfo(title="Greetings", message="Hello World!")
但这会在背景中打开另一个带有tk图标的窗口 . 我不想要这个 . 我一直在寻找一些简单的wxPython代码,但它总是需要设置一个类并进入一个app循环等 . 在Python中没有简单,无需捕获的方法来制作一个消息框吗?
12 回答
你提供的代码很好!您只需要在后台显式创建“其他窗口”并使用以下代码隐藏它:
就在你的留言箱之前 .
最后一个数字(此处为1)可以更改为更改窗口样式(不仅仅是按钮!):
例如,
将给this:
PyMsgBox模块就是这样做的 . 它具有遵循JavaScript命名约定的消息框函数:alert(),confirm(),prompt()和password()(这是prompt()但在您键入时使用*) . 这些函数调用将阻塞,直到用户单击“确定/取消”按钮 . 它是一个跨平台的纯Python模块,没有依赖关系 .
安装时间:
pip install PyMsgBox
样品用法:
http://pymsgbox.readthedocs.org/en/latest/的完整文档
你可以像这样使用导入和单行代码:
或者像这样定义一个函数(Mbox):
注意样式如下:
玩得开心!
注意:编辑后使用
MessageBoxW
而不是MessageBoxA
您也可以在退出之前定位另一个窗口,以便定位消息
使用
必须先创建主窗口 . 这适用于Python 3.这不是fot wxPython,而是适用于tkinter .
不是最好的,这是我的基本消息框仅使用tkinter .
你看过easygui吗?
在Mac上,python标准库有一个名为
EasyDialogs
的模块 . 在http://www.averdevelopment.com/python/EasyDialogs.html还有一个(基于ctypes的)windows版本如果它对您很重要:它使用原生对话框并且不依赖于已经提到的
easygui
的Tkinter,但它可能没有那么多的功能 .看看我的python模块:pip install quickgui(需要wxPython,但不需要知道wxPython)https://pypi.python.org/pypi/quickgui
可以创建任意数量的输入(比率,复选框,输入框),自动将它们排列在单个gui上 .
在Windows中,您可以使用ctypes with user32 library: