Python消息框没有巨大的库依赖

发布于 2024-10-08 13:08:00 字数 105 浏览 0 评论 0原文

是否有一个消息框类,我可以在其中显示一个简单的消息框,而无需庞大的 GUI 库或程序成功或失败时的任何库。 (我的脚本只做了一件事)。

另外,我只需要它在 Windows 上运行。

Is there a messagebox class where I can just display a simple message box without a huge GUI library or any library upon program success or failure. (My script only does 1 thing).

Also, I only need it to run on Windows.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

⊕婉儿 2024-10-15 13:08:01

您可以使用随 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 字符串。

You can use the ctypes library, which comes installed with Python:

import ctypes
MessageBox = ctypes.windll.user32.MessageBoxW
MessageBox(None, 'Hello', 'Window title', 0)

Above code is for Python 3.x. For Python 2.x, use MessageBoxA instead of MessageBoxW as Python 2 uses non-unicode strings by default.

巡山小妖精 2024-10-15 13:08:01

默认库中还有一些原型没有使用 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

There are also a couple prototyped in the default libraries without using ctypes.

Simple message box:

import win32ui
win32ui.MessageBox("Message", "Title")

Other Options

if win32ui.MessageBox("Message", "Title", win32con.MB_YESNOCANCEL) == win32con.IDYES:
    win32ui.MessageBox("You pressed 'Yes'")

There's also a roughly equivalent one in win32gui and another in win32api. Docs for all appear to be in C:\Python{nn}\Lib\site-packages\PyWin32.chm

爱本泡沫多脆弱 2024-10-15 13:08:01

PyMsgBox 模块使用 Python 的 tkinter,因此它不依赖于任何其他第三方模块。您可以使用pip install pymsgbox来安装它。它适用于 Windows、macOS 和 Linux。

函数名称类似于 JavaScript 的 alert()confirm()prompt() 函数:

>>> import pymsgbox
>>> pymsgbox.alert('This is an alert!')
>>> user_response = pymsgbox.prompt('What is your favorite color?')

The PyMsgBox module uses Python's tkinter, so it doesn't depend on any other third-party modules. You can install it with pip install pymsgbox. It works on Windows, macOS, and Linux.

The function names are similar to JavaScript's alert(), confirm(), and prompt() functions:

>>> import pymsgbox
>>> pymsgbox.alert('This is an alert!')
>>> user_response = pymsgbox.prompt('What is your favorite color?')
骄兵必败 2024-10-15 13:08:01

一种快速而肮脏的方法是调用操作系统并使用“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

A quick and dirty way is to call OS and use "zenity" command (subprocess module should be included by default in any python distribution, zenity is also present in all major linux). Try this short example script, it works in my 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)

See the zenity --help for more complex dialogs

别再吹冷风 2024-10-15 13:08:01

您还可以使用 tkinter 中的 messagebox 类:
从 tkinter 导入消息框
除非 tkinter 是您想要避免的那种巨大的 GUI。
使用方法很简单,即:
messagebox.FunctionName(标题, 消息 [, 选项])
在(showinfo、showwarning、showerror、askquestion、askokcancel、askyesno、askretrycancel)中使用FuntionName。

You can also use the messagebox class from tkinter:
from tkinter import messagebox
unless tkinter is that huge GUI you want to avoid.
Usage is simple, ie:
messagebox.FunctionName(title, message [, options])
with FuntionName in (showinfo, showwarning, showerror, askquestion, askokcancel, askyesno, askretrycancel).

绳情 2024-10-15 13:08:01

这个是用 tkinter 的。

from tkinter import * #required.
from tkinter import messagebox #for messagebox.

App = Tk() #required.
App.withdraw() #for hide window.

print("Message Box in Console")
messagebox.showinfo("Notification", "Hello World!") #msgbox

App.mainloop() #required.

This one with tkinter.

from tkinter import * #required.
from tkinter import messagebox #for messagebox.

App = Tk() #required.
App.withdraw() #for hide window.

print("Message Box in Console")
messagebox.showinfo("Notification", "Hello World!") #msgbox

App.mainloop() #required.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文