Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 28, 2010 16:00:12

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

Возврат значения из функции.

Глупый глупый вопрос, но ступор какой-то…

Через 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()



Офлайн

#2 Апрель 28, 2010 17:25:13

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

Возврат значения из функции.

Объявите excel уровнем выше. Хотя возможно вернее будет сделать обе функции методами одного класса к примеру, и через общее свойство передавать.

excel = None
def Logs():
excel = str(tkFileDialog.askopenfilenames(multiple=1))
return excel
Должно сработать.

ps. все импорты делайте всегда в начале файла, а не внутри методов.



Отредактировано (Апрель 28, 2010 17:27:07)

Офлайн

#3 Апрель 29, 2010 09:54:47

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

Возврат значения из функции.

Так не получилось.



Извращённо сделал… и получилось. Но хотелось бы понять…мне кажется что можно намного проще.

EXC =
def Logs():
excel = str(tkFileDialog.askopenfilenames(multiple=1))
EXC.append(excel)
return excel



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version