1

py2app トレースバック ダイアログをさらに制御する簡単な方法、または GUI メッセージを表示する良い方法はありますか?

py2app スクリプトで例外を発生させると、次のようなダイアログが表示されます。

MyAppName エラー

MyAppName エラー

メイン スクリプトの実行中に予期しないエラーが発生しました

MyRaisedError: これは、エラーを発生させたときに制御できるテキストです。

コンソールを開くボタンと終了ボタンがあります。私のスクリプトは、特定の DVD がドライブにあるかどうかを確認する必要があります。そうでない場合は、エラー ダイアログを表示して終了します。テキストの一部しか変更できず、ボタンを制御できないため、これよりも詳細に制御したいと考えています。

AppleScript を介して「ダイアログの表示」を行うために osascript を呼び出してみましたが、次のようなエラーが発生しました: 0:19: 実行エラー: ユーザーの操作は許可されていません。(-1713) こういうやり方は特に好きじゃないんだけど、これくらいしか出来ないなら…

Cocoa Dialogsのような大きなプロジェクトや PyObjC プロジェクトのようなものは含めたくないのですが... スクリプト自体は非常に小さく、ダイアログを取得するためだけにスクリプトの 10 倍の肉を追加することはできません。

4

2 に答える 2

2

を使用する代わりに、py-appscriptを介してosascript呼び出すことができます。これは、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 に答える