@sandul23

Как исправить проблему с insert в питоне(TKINTER)?

ЗНАЮ,КОД УЖАСНЫЙ И ВООБЩЕ НАПИСАН НА КОЛЕНКАХ.
ПИШУ КАК УМЕЮ.

Видит бог,я не хотел обращаться куда-либо за помощью,но придется,ибо нигде упоминаний данной проблемы нет.
Какова суть ?
Я делаю что-то типо ЯП,уже много раз пытаюсь и не получается.Но тут я решаю сделать IDE.
В прочем,с него и начал.
Задача моей недо-проги в том,что бы банально открывать JS файл. Сначала у нас должно появляться окно,где нас просят ввести путь к файлу,а потом у нас появляется окно для редактирования,где должно высветиться содержимое файла.
Но оно что ? Правильно.Не высвечивается и щедро посыпает консоль ошибками.

Ошибки при нажатии на кнопку перехода в окно редачки:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Admin\AppData\Local\Programs\Python\Python39-32\lib\tkinter\__init__.py", line 1892, in __call__
return self.func(*args)
File "C:\Users\Admin\Desktop\EFScript\EFScript IDE.py", line 38, in OPENFUNCFile
EFOPENFile = i_nameOF.get("1.0", "end-1c")
File "C:\Users\Admin\AppData\Local\Programs\Python\Python39-32\lib\tkinter\__init__.py", line 3711, in get
return self.tk.call(self._w, 'get', index1, index2)
_tkinter.TclError: invalid command name ".!text"

Код:
from tkinter import *
#Начало.Открытие окна,в котором вводится расположение файла.После,содержимое файла записывается и вставляется в форму.
OpenFile = Tk()
OpenFile.title("Среда разработки EFScript|Открыть файл")
OpenFile.geometry('800x400')
nameOF = Label(text="Введите путь к файлу",font=("Arial Bold", 35))
i_nameOF = Text(width=100,height=5)
nameOF.pack()
i_nameOF.pack()
def compil():
    EFcode = text_box.get("1.0", "end-1c")
    EFFile = i_name.get("1.0", "end-1c")
    EFName = EFFile+ '.'+"js"
    print(EFcode)
    print(EFName)
def OPENFUNCFile():
    window = Tk()
    window.title("Среда разработки EFScript")
    window.geometry('800x400')
    zglone = Label(window,text="Введите код",font=("Arial Bold", 35))
    text_box = Text(window,width=100,height=10)
    name = Label(window,text="Введите название файла",font=("Arial Bold", 35))
    i_name = Text(window,width=100,height=5)
    button = Button(
        window,
        text="Обработать",
        width=25,
        height=3,
        bg="blue",
        fg="yellow",
    )
    command=compil,
    global EFOPENFile
    global OFNF
    global OFRF
    OpenFile.destroy()
    EFOPENFile = i_nameOF.get("1.0", "end-1c")
    OFNF = open(EFOPENFile, 'r+', encoding="UTF-8")
    OFRF = OFNF.read()
    name.pack()
    i_name.pack()
    zglone.pack()
    text_box.pack()
    button.pack()
    OpenFile.destroy()
    text_box.delete(0,"end")
    text_box.insert(0, OFRF)
    i_name.delete(0,"end")
    i_name.insert(0, OFRF)
    print(EFOPENFile)
    print(OFRF)
    window.mainloop()

buttonOF = Button(
    text="Открыть файл",
    width=25,
    height=3,
    bg="blue",
    fg="yellow",
    command=OPENFUNCFile
)
buttonOF.pack()
OpenFile.mainloop()
  • Вопрос задан
  • 291 просмотр
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Вы сначала закрываете окно, затем пытаетесь получить данные, которые были в этом окне.

Куда нибудь повыше EFOPENFile = i_nameOF.get("1.0", "end-1c") закиньте, до OpenFile.destroy(). Ну и два дестроя у вас
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы