2010-07-29 38 views
8

在Windows中爲Python腳本生成錯誤窗口最簡單的方法是什麼? 特定於Windows的答案很好;請不要回復如何生成自定義Tk窗口。如何在Windows中在Python中拋出錯誤窗口

+0

這有什麼錯Tk的?使用tkinter創建消息框非常簡單。 – 2010-07-29 18:14:44

+0

我正在尋找一個班輪 – 2010-07-29 18:23:00

回答

6

@Constantin幾乎是正確的,但他的例子會產生垃圾文本。確保文本是unicode。即,

ctypes.windll.user32.MessageBoxW(0, u"Error", u"Error", 0) 

...它會正常工作。

+0

我會記住這一點。 – 2010-07-29 18:26:50

+0

幾乎正確:)在3.x'ctypes.windll.user32.MessageBoxW(0,「Error」,「Error」,0)''會按預期工作,'u'Error''根本不會編譯。 – Constantin 2010-07-29 18:32:56

+0

啊,很高興知道。當我被迫遷移到py3k時,這將會是一個令人頭痛的問題! – Chris 2010-07-29 18:34:41

1

如果你需要一個GUI錯誤信息,您可以使用EasyGui

>>> import easygui as e 
>>> e.msgbox("An error has occured! :(", "Error") 

否則簡單print("Error!")應該足夠了。

+0

這工作,謝謝!不過,我不得不安裝另一個庫。它基於Tkinter。我想直接調用windows API。 – 2010-07-29 18:25:24

1

如果我沒有記錯的(沒有在目前的Windows箱),​​方法是:

import ctypes 
ctypes.windll.user32.MessageBoxW(None, u"Error", u"Error", 0) 

ctypes是一個標準模塊。

注意:對於Python 3.x,您不需要u前綴。

2

您可以使用tkinter獲得一行代碼。

import tkMessageBox 

tkMessageBox.showerror('error title', 'error message') 

這是pop-up dialogs的一些文檔。

+0

啊,我不知道,謝謝! 我更喜歡直接win32調用,雖然 – 2010-07-29 18:40:19

+0

請注意,有了這個答案,你也會得到一個主窗口。有關詳細信息,請參閱[此答案](http://stackoverflow.com/questions/17280637/tkinter-messagebox-without-window)。 – Brown 2017-04-05 14:11:34

1

退房的信息對消息boxs Python的維基的GUI部分

相關問題