是否可以在python中生成类似于JavaScript警报(“message”)的警报,并将应用程序作为守护程序运行。
这将在Windows中运行,很可能是XP但2000和Vista也是非常真实的可能性。
更新:
这是为了在后台运行并在满足某些条件时提醒用户,我认为提醒用户的最简单方法是生成弹出窗口,因为它需要立即处理,以及其他选项,如只是记录或发送电子邮件效率不高。
答案 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"
传递的参数应该是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")
您可以选择针对不同情况显示各种类型的消息框选项:
答案 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秒后,显示消息并截断文件。