2016-10-25 20 views
0

Я пытаюсь сделать что-то, чтобы пользователи моей компании могли изменить свою подпись по умолчанию электронной почты с некоторой персонализацией.askopenfilename функции tkinter и globals

Так что я не понимаю, почему, когда я нажимаю на эту кнопку:

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

Смежные вопросы