Найти - Пользователи
Полная версия: Как передать значения переменных созданных в Tkinder
Начало » Python для новичков » Как передать значения переменных созданных в Tkinder
1
AndreyRafaev
Добрый день.
Не могу передать значения имени файла после его получения в askopenfile в основную проограмму - print(file) показывает ошибку.
Спасибо.

 from tkinter import * 
from tkinter.filedialog import askopenfile
from tkinter import filedialog
global file
root = Tk()
root.geometry('400x60')
root.title("Подсчет очков на Russialoppet")
def open_file_handler():
    global global_file 
    global_file = open_file()
def open_file():
    file = askopenfile (mode ='r', filetypes =[('Текстовый  файл', '*.txt'), 
                                                ('Excel файл', '*.xlsx *.xls')])
    if file is not None:
        file = file.name
        root.destroy()
        root.update()
        return file
btn = Button(root, text ='Выберите текстовый файл или Excel файл', command = lambda:open_file_handler())
btn.pack(side = TOP, pady = 10)
print (global_file) 
mainloop()
[b]print(file)[/b]#Выдает ошибку

py.user.next
У тебя неправильно используют области видимости имён. Ты должен был прочитать книжку по питону, прежде чем браться за разработку на питоне. Тупая ошибка из-за нулевых знаний в самом питоне и его областях видимости.

Глобальных переменных в коде вообще быть не должно. Если они появляются (необходимость в них возникает), значит ты что-то делаешь неправильно.

Я так понимаю, что ты не только в питоне ничего не знаешь, но и в структурном программировании. Поэтому-то ты и не знаешь, как правильно данные передавать между функциями.

Начни с нуля, убери функции и делай всё сплошняком.

AndreyRafaev
  
print(file)#Выдает ошибку
Да это имя file является локальным внутри функции. Оно внутри функции создаётся и внутри функции уничтожается. А ты его пытаешься использовать снаружи функции, где этого имени уже не существует давно. Вот и все твои познания.
AndreyRafaev
Спасибо, знаток!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB