Python中的警报框?

时间:2008-10-07 05:08:36

标签: python alerts

是否可以在python中生成类似于JavaScript警报(“message”)的警报,并将应用程序作为守护程序运行。

这将在Windows中运行,很可能是XP但2000和Vista也是非常真实的可能性。

更新:
这是为了在后台运行并在满足某些条件时提醒用户,我认为提醒用户的最简单方法是生成弹出窗口,因为它需要立即处理,以及其他选项,如只是记录或发送电子邮件效率不高。

6 个答案:

答案 0 :(得分:47)

怎么样:

import win32api

win32api.MessageBox(0, 'hello', 'title')

此外:

win32api.MessageBox(0, 'hello', 'title', 0x00001000) 
对于紧急消息,

将使该框显示在其他窗口的顶部。有关其他选项,请参阅MessageBox function

答案 1 :(得分:3)

GTK可能是更好的选择,因为它是跨平台的。它在Ubuntu上运行得很好,并且在安装GTK和Python绑定时在Windows上运行得很好。

from gi.repository import Gtk

dialog = Gtk.MessageDialog(None, 0, Gtk.MessageType.INFO,
            Gtk.ButtonsType.OK, "This is an INFO MessageDialog")
dialog.format_secondary_text(
    "And this is the secondary text that explains things.")
dialog.run()
print "INFO dialog closed"

您可以看到其他示例here。 (pdf

传递的参数应该是gtk.window parent(或None),DestroyWithParent,Message type,Message-buttons,title。

答案 2 :(得分:2)

对于那些寻找与Windows不兼容并且独立于平台的纯Python选项的人,我选择了以下网站上列出的选项:

https://pythonspot.com/tk-message-box/

# Python 3.x code
# Imports
import tkinter
from tkinter import messagebox

# This code is to hide the main tkinter window
root = tkinter.Tk()
root.withdraw

# Message Box
messagebox.showinfo("Title", "Message")

您可以选择针对不同情况显示各种类型的消息框选项:

  • showinfo()
  • showwarning()
  • showerror()
  • askquestion()
  • askokcancel()
  • askyesno()
  • askretrycancel()

答案 3 :(得分:1)

您可以在Python中使用win32库,这是OK或Cancel的经典示例。

import win32api
import win32com.client
import pythoncom

result = win32api.MessageBox(None,"Do you want to open a file?", "title",1)

if result == 1:
 print 'Ok'
elif result == 2:
 print 'cancel'

收藏品:

win32api.MessageBox(0,"msgbox", "title")
win32api.MessageBox(0,"ok cancel?", "title",1)
win32api.MessageBox(0,"abort retry ignore?", "title",2)
win32api.MessageBox(0,"yes no cancel?", "title",3)

答案 4 :(得分:1)

您可以使用PyAutoGui来创建警报框 首先使用pip安装pyautogui:

pip install pyautogui

然后在python中键入:

import pyautogui as pag
pag.alert(text="Hello World", title="The Hello World Box")

还有更多从Javascript窃取的消息框:

  • confirm()
    使用确定和取消按钮
  • prompt()
    使用文字输入
  • password() 使用文本输入,但键入的字符将显示为 *

答案 5 :(得分:-2)

启动应用程序作为后台进程,该应用程序要么将TCP端口绑定到localhost,要么通过文件进行通信 - 您的守护程序将文件打开,然后是echo "foo" > c:\your\file。比如说,没有活动1秒后,显示消息并截断文件。