2017-01-20 12 views
0

に「STRINGVAR」オブジェクト呼び出すことはできませんが、私のコードです::私は現在、以下、Pythonで入力フィールドの内容を更新しようとしていますPythonの

from tkinter.filedialog import * 

from tkinter import * 
master = Tk() 

menu = Menu(master) 
master.config(menu=menu) 

Label(master, text='Camera File:').grid(row=0, column=1) 

def carddir_get(): 
    temp_carddir = askdirectory(parent=master, title='Please select a directory') 
    print(temp_carddir) 
    cdg.delete(0,END) 
    cdg.insert(0,temp_carddir) 

temp_carddir = StringVar() 
temp_carddir.set("/path/to/card/") 
temp_carddir.trace("w", temp_carddir) 

cdg = Entry(master, textvariable=temp_carddir) 

cdg.grid(row=0,column=2) 

Button(master, text='Browse', command=carddir_get).grid(row=0, column=3) 

mainloop()` 
+1

私はtkinterを使用していませんが、バグはこの行にあります。 'temp_carddir.trace(" w "、temp_carddir)'私の推測では、2番目のパラメータはコールバックでなければなりません。 – Tagc

答えて

1

私がコメントで言ったように、私はドンTkinterを使用していませんが、traceは2番目のパラメータとしてコールバックが必要です。

私が交換:

temp_carddir.trace("w", temp_carddir) 

で:

temp_carddir.trace("w", lambda nm, idx, mode: print('nm={}, idx={}, mode={}'.format(nm, idx, mode))) 

ダイアログボックスを開いて閉じた後、私は今の代わりに、エラーのコンソールで次の出力を参照してください。

nm=PY_VAR0, idx=, mode=w 

うまくいけば、これは私にとってよりあなたにとって理にかなっていて、あなたはここから続けることができます。

+0

華麗な、ありがとう!その行は実際には必要ありません、それは問題を引き起こしていたものです... –

+0

@EdLancasterいいえ心配しないでください。私の答えがあなたを助けてくれたと思えば、私の答えを受け入れることができます(http://meta.stackexchange.com/a/5235)。 – Tagc

関連する問題