Форум сайта python.su
Глупый глупый вопрос, но ступор какой-то…
Через Tkinter при нажатии кнопки выполняется функция. Результат этой функции мне нужен при нажатии другой кнопки.
Я похоже не совсем улавливаю как писать функции и как использовать результат…
Просьба книжки не отсылать читать… читал…не понял
При нажатии кнопки “Log” выбираю файл, а затем при нажатии кнопки “GO” используя ранее полученный файл ‘excel’ открыть его и т.д. и т.п.
Что-то не так пишу, так как при нажатии кнопки “GO” функция не получает нужные переменные - то есть ‘excel’
Мой код:
def Logs():
excel = str(tkFileDialog.askopenfilenames(multiple=1))
return excel
def GO(excel):
import xlrd
book = xlrd.open_workbook(excel)
...
...
from Tkinter import *
import tkFileDialog
root = Tk()
root.maxsize(800, 600)
root.minsize(400, 300)
root.title(u'BOOK')
but1 = Button(root,text=u'Log',width=10,height=2,bg='black',fg='red',font='arial 10')
but2 = Button(root,text=u'GO',width=10,height=2,bg='black',fg='red',font='arial 10')
but1.grid()
but2.grid()
but1.bind("<Button-1>",Logs)
but2.bind("<Button-1>",GO)
root.mainloop()
Офлайн
Объявите excel уровнем выше. Хотя возможно вернее будет сделать обе функции методами одного класса к примеру, и через общее свойство передавать.
excel = None
def Logs():
excel = str(tkFileDialog.askopenfilenames(multiple=1))
return excel
Отредактировано (Апрель 28, 2010 17:27:07)
Офлайн
Так не получилось.
Извращённо сделал… и получилось. Но хотелось бы понять…мне кажется что можно намного проще.
EXC =
def Logs():
excel = str(tkFileDialog.askopenfilenames(multiple=1))
EXC.append(excel)
return excel
Офлайн