在使用py2app时,有没有一种方法可以自定义显示的回溯对话框?(或显示不同的可可对话?)

2024-04-19 12:09:05 发布

您现在位置:Python中文网/ 问答频道 /正文

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

如果我在py2app脚本中引发一个异常,我会看到一个对话框,上面写着这样的内容:

MyAppName Error

MyAppName Error

An unexpected error has occurred during execution of the main script

MyRaisedError: This is the text that I can control when I raise the error.

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

我试图通过applescript调用osascript来执行“display dialog”,但它给了我这样一个错误:0:19:执行错误:不允许用户交互。(-1713)我不是特别喜欢这样做,但如果这是我能做的一切。。。在

我真的不想包括像Cocoa Dialogs这样的大项目或者像PyObjC项目这样的东西。。。脚本本身非常小,我不能看到添加10倍我的脚本肉只是为了得到对话。在


Tags: the项目方法脚本消息内容错误gui
2条回答

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

不使用osascript,您可以通过py-appscript调用display dialog,如果您的python站点库中还没有它,可以通过easy_install安装。此示例在py2app生成的应用程序中运行:

#!/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()

相关问题 更多 >