2012-02-23 59 views
3

をクラッシュ...PythonのTkinterの - キャンバスを保存 - Tkinterには、私はポストスクリプトメソッドを使用して、私のキャンバスを保存しようとしている、とのTkinterがクラッシュ

w.postscript(file="my_drawing.ps", colormode='color') 

が例外を取得します。

w.postscript(file="my_drawing.ps", colormode='color') 
File "C:\python27\lib\lib-tk\Tkinter.py", line 2307, in postscript 
self._options(cnf, kw)) 
_tkinter.TclError: invalid command name ".57816328L" 

私は」このエラーが何を意味するのかわからない - 以前に誰かが遭遇したことはありますか?

私もカラーオプションなしで、無駄なく試しました。


編集 - 基本的にストリップダウンwidgitは同じエラーを与える:

from Tkinter import * 
master = Tk() 
w = Canvas(master, width=1000, height=1000) 
w.pack() 
w.create_oval(450,550,550,450) 
mainloop() 
w.postscript(file="my_drawing.ps") 
+0

このコードは、楕円、テキスト、矩形を使用して私のために働いていました。私はこの問題がローカル構成の問題に関係していると考えています。あなたが完全なキャンバスコードを投稿したいのであれば、ここでそれを実行してエラーを再現できるかどうかを確認してください。画像が必要な場合は、スクリーンショットを撮ることができますか? – ABS

+0

@ABS完全なコードを投稿できます。すべてのオブジェクトが動的に作成されるため、スクリプト全体が必要になりますか?私はプロセスを自動化したいので、スクリーンショットはあまり理想的ではありません。 –

+0

簡略化するために、オブジェクトの数を減らして短いスクリプトを実行し、まだエラーが発生するかどうかを確認すると役に立ちます。はいの場合は、最初に短いスクリプトを修正してみましょう。そうでない場合は、何が壊れているかを見るまでコードの追加を続けることができます。 – ABS

答えて

4

あなたが単にmainloop()呼び出し上記w.postscript()コールを移動した場合に動作するようです。これは、のTkinter GUIが閉じられた後(ウィンドウが閉じられるまでmainloop()が実行されているので)、w.postscript()の呼び出しによるエラーであることを意味します。

これはコードとthis exampleの違いであることに気付きました。そのため、スクリプトを実行するとすぐに.psファイルが作成されたことがわかりました。

+0

ばっちり成功。ありがとうございました。そして、それも意味があります。 –

+1

すばらしい、うれしそうに助けた。 – gary

+0

興味深いことに、 'print()'ステートメントは 'mainloop()'の後に置くとうまく実行されます。 – gary

関連する問題