如何在 linux 中使用带有 Python 的警告对话框?

How can I use an alert dialog with Python in linux?

我的问题和this question类似,但是我用的是Xubuntu,所以win32 api显然不可用。我可以使用其他替代方法吗?

我只需要一个简单的 window 弹出消息,来自 python 脚本。

您可以使用跨平台的 Tkinter 执行此操作,并且通常与标准 Python 包捆绑在一起。

import Tkinter as tk
import tkMessageBox
root = tk.Tk()
root.withdraw()
tkMessageBox.showwarning('alert title', 'Bad things happened!')

(在Python 3上,需要将第一行改为import tkinter as tk。而import tkMessageBox行变为from tkinter import messagebox,并且需要匹配更改最后一行)。

接下来的两行为应用程序创建一个根 window(所有 Tkinter 程序都需要),然后使 window 不可见。最后我们显示警报。

可能在使用 Tkinter 之前需要安装 python-tk(即 Ubuntu 发行版中的 sudo apt-get install python-tk)——它不是由某些发行版的默认设置。

此答案基于 PM 2Ring 答案:

我在关闭消息框时遇到一些问题,所以我这样做了:

import Tkinter as tk
import tkMessageBox
root = tk.Tk()
root.withdraw()
tkMessageBox.showwarning('Title','Are you sure?')
root.update()

要创建需要关闭的通知而不是对话框,您可以使用 notify-send,如下所示。这也不需要安装 python-tk 或其他软件包。

import subprocess
subprocess.run(["/usr/bin/notify-send", "--icon=error", "This is your error message ..."])

有关更多选项,请参阅 man page

对于Python3:

from tkinter import *
import tkinter as tk
from tkinter import messagebox
root = tk.Tk()
root.withdraw()
messagebox.showwarning('alert title', 'Bad things happened!')

您需要安装 tkinter:

sudo apt-get install python3-tk 

另一个解决方案是使用 pyautogui

import pyautogui as pag
pag.alert(text="Bad things happened!", title="alert title")