2016-10-25 6 views
0

私の会社のユーザーが個人設定でメールのデフォルト署名を変更できるようにしようとしています。私は、このボタンをクリックするとaskopenfilename tkinter関数とグローバル

だから私はなぜ理解していない:

Button(master, text='Insert Image',command=insert_image).grid(row=12,column=1,sticky=W,pady=4) 

をそれは、これを呼び出します。

global image_path 

def insert_image(): 
    image_path = filedialog.askopenfilename(initialdir="X:\\", title="Select the image you want to add") 
    image_path = 'X:\\' + str(image_path) 

それは私がファイルを選択することができますし、変数に格納しているようですが、その後、私はここに変数を使用する必要がある場合:

if image_path != "": 
     signature.write('<br><br><img src="{}" alt="prova"><br><br>\n'.format(image_path)) 

をそれは

を与えます
NameError: name 'image_path' is not defined 

私は間違っていますか?

答えて

2

変数をグローバルスコープで作成し、関数内でglobalを使用する必要があります。

image_path = "" 

def insert_image(): 
    global image_path 
    image_path = filedialog.askopenfilename(...) 
    ... 
+0

どうもありがとうございます! – andrepogg

関連する問題