Код работает не так как было задумано

Nikita 2020

Новичок
Пользователь
Май 21, 2020
46
3
8
Windows 7, python 3.8
Код:
Python:
from tkinter import *
from tkinter.filedialog import askopenfilename
razdels_name = " "
razdels_and_file_list = {}
razdels_btn = []
files_razdel_list = []
file_razdels_name = ""
root3 = None
i = 0
i1 = 0
m2 = []
def open_file_razdel(x_file_razdel):
    print(x_file_razdel)

#Создание окна, открытие раздела
def open_razdel2(x_razdel):
    global p, file_razdel_name, files_razdel_list, files_razdel, razdels_and_file_list, file
    m7 = globals()[razdels_name] = {}
    i1 =+ 1
    if i1 >= 2 :
        root3.destroy()
    root3  = Tk()
    root3["bg"] = "#1A1A36"
    files_razdel_list.append(filename)
    for file_razdel_name in files_razdel_list:
        files_razdel = lambda x_file_razdel=file_razdels_name:files_razdel1(x_files_razdel)
    m4 = Button(root3, text = filename, bg ="#1A1A36", fg = "white").grid()
    razdels_and_file_list[x_razdel] = filename

#добавление объекта в окно
def save_razdel():
    global m1, razdels_name, m5, m6, m2, i
    i += 1
    root2.withdraw()
    if i >= 2:
        for i in m2:
            i.grid_forget()
    razdels_btn.append(entry_dobavit_nazvanie.get())
    for razdels_name in razdels_btn:
        open_razdel1 = lambda x_razdel=razdels_name:open_razdel2(x_razdel)
        m1 = Button(root1, text = razdels_name, bg ="#1A1A36", fg = "white", width = 15, activebackground = "#080429", command = open_razdel1)
        m1.grid()
        m2.append(m1)




#выбор файла
def vibor_file_razdel():

    global filename

    filename = askopenfilename() #Открытие окна с фалами

#создание окна для добавления объектов в окно
def dobavit_razdel():
    global message_nazvanie_radel, root2, entry_dobavit_nazvanie, root1, root2, btn_dobavit_file
    root2 = Toplevel(root1)
    root2["bg"] ="#1A1A36"

    message_nazvanie_radel = StringVar()
    message_file_razdel = StringVar()

    labl_dobavit_nazvanie = Label(root2, text = "Добавить название", bg ="#1A1A36", fg = "white", width = 15)
    labl_dobavit_nazvanie.grid()

    entry_dobavit_nazvanie = Entry(root2,textvariable=message_nazvanie_radel, bg ="#1A1A36", fg = "white", width = 15)
    entry_dobavit_nazvanie.grid()

    btn_dobavit_file = Button(root2, text = "Добавить файл",  bg ="#1A1A36", fg = "white", width = 15, activebackground = "#080429", command= vibor_file_razdel)
    btn_dobavit_file.grid()

    btn_save = Button(root2,text="Сохранить", command=save_razdel, bg ="#1A1A36", fg = "white", width = 15, activebackground = "#080429")
    btn_save.grid()

root1 = Tk()
root1["bg"] ="#1A1A36"
btn_dobavit_razdel = Button(root1, text = "Добавить раздел", bg ="#1A1A36", fg = "white", width = 15, activebackground = "#080429", command = dobavit_razdel)
btn_dobavit_razdel.grid(column = 0, row = 0)
root1.mainloop()
Есть окно в котором создаётся кнопка с функцией которая создаёт дочерние окно, в нём нужно написать название файла, выбрать путь файла и нажать на "Сохранить", после этого срабатывает функция которая закрывает окно "root2" и создаётся кнопка с функцией которая создаёт третье окно и добавляет туда кнопку с текстом filename. Но дело в том что если создать два таких раздела и поместить допустим в первый гугл а во второй яндекс то в обоих разделах меняется файл который создавался во втором разделе.
 

Форум IT Специалистов