私の Python 3.3 コードでは、ttk ライブラリのいくつかのコンボボックスを使用していますが、それらは正常に機能しますが、それらのいずれかを使用すると、X ボタンでウィンドウを閉じると例外が発生します。これは例です:
from tkinter import Tk,Label,Button
from tkinter import ttk
from tkinter.ttk import Combobox
def cbox_do(event):
'Used for cbox.'
clabel.config(text=cbox.get())
a = Tk()
cbox = Combobox(a, value=('Luke','Biggs','Wedge'), takefocus=0)
cbox.bind("<<ComboboxSelected>>", cbox_do)
cbox.pack()
clabel = Label(a)
clabel.pack()
a.mainloop()
値を選択せずに閉じても問題ありませんが、値を選択した後に閉じようとすると、終了しますが、Python コマンド ラインに次のエラーが出力されます。
can't invoke "winfo" command: application has been destroyed
while executing
"winfo exists $w"
(procedure "ttk::entry::AutoScroll" line 3)
invoked from within
"ttk::entry::AutoScroll .41024560"
(in namespace inscope "::" script line 1)
invoked from within
"::namespace inscope :: {ttk::entry::AutoScroll .41024560}"
("uplevel" body line 1)
invoked from within
"uplevel #0 $Repeat(script)"
(procedure "ttk::Repeat" line 3)
invoked from within
"ttk::Repeat"
("after" script)
どうすれば修正できますか?ご協力いただければ幸いです。
更新 1: Python のバージョンは v3.3 です。バンドルされている Tcl/Tk と Tkinter を使用しています。x86 と x64 の両方のバージョンを試しました。
更新 2: コマンド ラインからスクリプトを実行した場合にのみ、例外がスローされます。Idle には表示されません。