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

Mic*_*ann 5 python linux ubuntu cross-platform

我的问题类似于这个问题,但我使用的是Xubuntu,所以win32 api显然不可用.我可以使用一些替代品吗?

我只需要在python脚本中弹出一个带有消息的简单窗口.

PM *_*ing 10

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

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

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

接下来的两行为应用程序创建了一个根窗口(所有Tkinter程序都需要),但随后使该窗口不可见.最后我们显示警报.

在使用Tkinter之前,您可能需要安装python-tk(即sudo apt-get install python-tk在Ubuntu发行版中) - 默认情况下,它不会安装在某些发行版上.

  • 在某些 Linux 版本中,包含的 Python 安装不包含 Tkinter,因为 [Tcl 本身没有预安装](http://tkinter.unpythonic.net/wiki/How_to_install_Tkinter)。此解决方案不适用于这些系统。只是需要注意的东西。 (2认同)

bit*_*ant 7

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

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

有关更多选项,请参阅手册页