1

是否有一种简单的方法可以进一步控制 py2app 回溯对话框,或者只是一种显示 GUI 消息的好方法?

如果我在我的 py2app 脚本中引发异常,我会得到一个对话框,内容如下:

MyAppName 错误

MyAppName 错误

执行主脚本期间发生意外错误

MyRaisedError:这是我在引发错误时可以控制的文本。

它有打开控制台终止按钮。我的脚本需要检查驱动器中是否有某个 DVD,如果不是,我想显示一个错误对话框并退出。我希望对它有更多的控制权,因为我只能更改一些文本而无法控制按钮。

我尝试通过 applescript 调用 osascript 来执行“显示对话框”,但它给了我这样的错误:0:19:执行错误:不允许用户交互。(-1713) 我不是特别喜欢这种方式,但如果这是我能做的...

我真的不希望包含像Cocoa Dialogs这样的大项目或 PyObjC 项目之类的东西......脚本本身非常小,我看不到添加 10 倍的脚本内容只是为了获得对话框。

4

2 回答 2

2

您可以通过py-appscriptosascript调用,而不是使用,如果您的 python 站点库中还没有它,可以通过. 此示例在 py2app 生成的应用程序中运行:display dialogeasy_install

#!/usr/bin/env python
from osax import *
import py2app

def doit():
    sa = OSAX()
    sa.display_dialog("Python says hello!",
            buttons=["Hi!", "Howdy!", "Duuuude!"],
            default_button=3)

if __name__ == '__main__':
    doit()
于 2009-12-16T22:04:27.460 回答
0

只需在引发异常的代码部分周围放置一个标准 Python try/catch 块,然后使用 NSAlert 告诉您的用户他们需要将 DVD 放入

于 2009-12-17T01:05:57.543 回答