用python实现消息框并在windows和linux中运行的更好方法

用python实现消息框并在windows和linux中运行的更好方法,python,linux,windows,Python,Linux,Windows,我正在Python2.7.9中实现消息框。我正在编写应该在Windows和Linux中运行的代码下面的代码在windows中运行良好,但在Linux中不行。我知道Linux中没有Windell的模块对象。在编写在windows和Linux环境下运行的代码时,是否需要注意一些指导原则?这将是伟大的任何文档链接为这个。提前谢谢 import ctypes # An included library with Python install. ctypes.windll.user32.MessageB

我正在Python2.7.9中实现消息框。我正在编写应该在Windows和Linux中运行的代码下面的代码在windows中运行良好,但在Linux中不行。我知道Linux中没有Windell的模块对象。在编写在windows和Linux环境下运行的代码时,是否需要注意一些指导原则?这将是伟大的任何文档链接为这个。提前谢谢

import ctypes  # An included library with Python install.
ctypes.windll.user32.MessageBoxA(0, "Your text", "Your title", 1)

AttributeError: 'module' object has no attribute 'windll'

最简单的选择可能是使用GUI框架;特别是Tkinter,它与Python捆绑在一起。以下代码应该在Python 2.X和3.X中跨平台工作(尽管Tkinter在Mac OS X中需要):

try:
    # Python 3.x imports
    import tkinter as tk
    from tkinter import messagebox
except ImportError:
    # Fall back to 2.x
    import Tkinter as tk
    import tkMessageBox as messagebox

root = tk.Tk().withdraw()  # hide the root window

messagebox.showinfo('hello', 'world')  # show the messagebox
结果(在Windows 7上的2.7.10或3.5.0中):


还有其他的
messagebox
选项,可以是
询问…
(使用各种是、否和取消组合)或
显示…
(错误、警告或信息)。

最简单的选项可能是使用GUI框架;特别是Tkinter,它与Python捆绑在一起。以下代码应该在Python 2.X和3.X中跨平台工作(尽管Tkinter在Mac OS X中需要):

try:
    # Python 3.x imports
    import tkinter as tk
    from tkinter import messagebox
except ImportError:
    # Fall back to 2.x
    import Tkinter as tk
    import tkMessageBox as messagebox

root = tk.Tk().withdraw()  # hide the root window

messagebox.showinfo('hello', 'world')  # show the messagebox
结果(在Windows 7上的2.7.10或3.5.0中):


还有其他的
messagebox
选项,可以是
询问…
(使用各种是、否和取消组合)或
显示…
(错误、警告或信息)。

最简单的选项可能是使用GUI框架;特别是Tkinter,它与Python捆绑在一起。以下代码应该在Python 2.X和3.X中跨平台工作(尽管Tkinter在Mac OS X中需要):

try:
    # Python 3.x imports
    import tkinter as tk
    from tkinter import messagebox
except ImportError:
    # Fall back to 2.x
    import Tkinter as tk
    import tkMessageBox as messagebox

root = tk.Tk().withdraw()  # hide the root window

messagebox.showinfo('hello', 'world')  # show the messagebox
结果(在Windows 7上的2.7.10或3.5.0中):


还有其他的
messagebox
选项,可以是
询问…
(使用各种是、否和取消组合)或
显示…
(错误、警告或信息)。

最简单的选项可能是使用GUI框架;特别是Tkinter,它与Python捆绑在一起。以下代码应该在Python 2.X和3.X中跨平台工作(尽管Tkinter在Mac OS X中需要):

try:
    # Python 3.x imports
    import tkinter as tk
    from tkinter import messagebox
except ImportError:
    # Fall back to 2.x
    import Tkinter as tk
    import tkMessageBox as messagebox

root = tk.Tk().withdraw()  # hide the root window

messagebox.showinfo('hello', 'world')  # show the messagebox
结果(在Windows 7上的2.7.10或3.5.0中):


还有其他
消息框
选项,可以是
询问…
(使用各种是、否和取消组合)或
显示…
(错误、警告或信息)可移植性问题通常通过在特定于平台的部分上使用抽象层来解决,例如stdlib中的
os.path
模块,它具有相同API的不同实现(每个平台一个),并在运行时加载正确的实现


现在说到GUI,事情变得更复杂了——特别是在unix世界,那里没有内置的GUI工具包,有很多可能的选择。如果您不关心本机外观,只需要简单的功能,那么Tkinter可能是您的最佳选择,否则您将不得不寻找更复杂的跨平台GUI工具包(我想到的是Qt),或者尝试在目标平台的“本机”工具包上构建和维护您自己的抽象级别(这将是主要的PITA)可移植性问题通常通过在特定于平台的部分上使用抽象层来解决,例如stdlib中的
os.path
模块,它具有相同API的不同实现(每个平台一个),并在运行时加载正确的实现


现在说到GUI,事情变得更复杂了——特别是在unix世界,那里没有内置的GUI工具包,有很多可能的选择。如果您不关心本机外观,只需要简单的功能,那么Tkinter可能是您的最佳选择,否则您将不得不寻找更复杂的跨平台GUI工具包(我想到的是Qt),或者尝试在目标平台的“本机”工具包上构建和维护您自己的抽象级别(这将是主要的PITA)可移植性问题通常通过在特定于平台的部分上使用抽象层来解决,例如stdlib中的
os.path
模块,它具有相同API的不同实现(每个平台一个),并在运行时加载正确的实现


现在说到GUI,事情变得更复杂了——特别是在unix世界,那里没有内置的GUI工具包,有很多可能的选择。如果您不关心本机外观,只需要简单的功能,那么Tkinter可能是您的最佳选择,否则您将不得不寻找更复杂的跨平台GUI工具包(我想到的是Qt),或者尝试在目标平台的“本机”工具包上构建和维护您自己的抽象级别(这将是主要的PITA)可移植性问题通常通过在特定于平台的部分上使用抽象层来解决,例如stdlib中的
os.path
模块,它具有相同API的不同实现(每个平台一个),并在运行时加载正确的实现


现在说到GUI,事情变得更复杂了——特别是在unix世界,那里没有内置的GUI工具包,有很多可能的选择。如果您不关心本机外观,只需要简单的功能,那么Tkinter可能是您的最佳选择,否则您将不得不寻找更复杂的跨平台GUI工具包(我想到的是Qt),或者尝试在目标平台的“本机”工具包上构建和维护您自己的抽象级别(这将是主要的PITA).

为什么不使用GUI框架(例如Tkinter,它与Python捆绑在一起)?@jornshrpe谢谢。但我觉得使用GUI框架非常有挑战性。ctypes.windell.user32.MessageBoxA(0,“您的文本”,“您的标题”,1)是否有类似的内容。如果您只想弹出一个消息框,这并不特别具有挑战性!我也想使用自定义异常处理。我不太熟悉Tkinter如何使用例外手柄你为什么这样做