Как я могу использовать больше окон с кнопкой одновременно с Tkinter?
Я создаю главное окно с какой-нибудь кнопкой. Когда я нажимаю определенную кнопку, программа создает второе окно с 1 кнопкой и несколькими текстовыми полями, в которые я могу вставить некоторые данные. Окна при этом остаются открытыми. Проблема в том, что я не могу нажать кнопку второго окна, потому что я нажал кнопку в главном окне. Я пробовал с
.clear()
о функции кнопки главного окна, но я получаю
RecursionError
в IF. Как я могу решить эту проблему? Это мой код:
def convertToCsv():
global import_file_path
global block
if block == 2:
TableData = tk.Tk()
canvas4 = tk.Canvas(TableData, width=480, height=120, bg='lightsteelblue2', relief='raised')
canvas4.pack()
label1 = tk.Label(TableData, text='Dati Tabella', bg='lightsteelblue2')
label1.config(font=('helvetica', 28, 'bold'))
canvas4.create_window(240, 60, window=label1)
frame2 = Frame(TableData)
frame2.pack()
FileName = StringVar()
Data = StringVar()
CodF = StringVar()
LoginFrame2 = LabelFrame(frame2)
LoginFrame2.config(font=('helvetica', 20, 'bold'))
LoginFrame2.grid(row=1, column=0)
lblFileName = Label(LoginFrame2, text='Nome file:', font=('helvetica', 20, 'bold'))
lblFileName.grid(row=0, column=0)
txtFileName = Entry(LoginFrame2, font=('helvetica', 20, 'bold'), textvariable=FileName)
txtFileName.grid(row=0, column=1)
lblData = Label(LoginFrame2, text='Data esame:', font=('helvetica', 20, 'bold'))
lblData.grid(row=1, column=0)
txtData = Entry(LoginFrame2, font=('helvetica', 20, 'bold'), textvariable=Data)
txtData.grid(row=1, column=1)
lblCodF = Label(LoginFrame2, text='Cod Fiscale:', font=('helvetica', 20, 'bold'))
lblCodF.grid(row=2, column=0)
txtCodF = Entry(LoginFrame2, font=('helvetica', 20, 'bold'), textvariable=CodF)
txtCodF.grid(row=2, column=1)
canvas5 = tk.Canvas(TableData, width=480, height=120, bg='lightsteelblue2', relief='raised')
canvas5.pack()
def getDataTab():
file_name = (FileName.get())
data = (Data.get())
codF = (CodF.get())
print(file_name)
print(data)
print(codF)
with open('fileprova.txt', 'r+') as in_file:
stripped = (line.strip() for line in in_file)
lines = (line.split(" ") for line in stripped if line)
with open(file_name + '.csv', 'w+') as out_file:
writer = csv.writer(out_file)
writer.writerows(lines)
tk.messagebox.showinfo("Info", "Tabella creata con successo")
TableData.destroy()
browseButtonFile = tk.Button(text="Invia", command=getDataTab, bg='green', fg='white',
font=('helvetica', 12, 'bold'))
canvas5.create_window(240, 60, window=browseButtonFile)
TableData.mainloop()
block = 0
tk.messagebox.showinfo("Info", "Tabella creata con successo")
elif block == 1:
tk.messagebox.showwarning("Attenzione", "Creare prima il testo per ottenere la tabella")
else:
tk.messagebox.showwarning("Attenzione", "Selezionare prima la scansione")
saveAsButtonCsv = tk.Button(text='Ottieni la tabella', command=convertToCsv, bg='green', fg='white', font=('helvetica', 12, 'bold'))
canvas3.create_window(360, 300, window=saveAsButtonCsv)
Мне нужно нажать кнопку во втором окне, чтобы сохранить данные, которые я вставляю в текстовые поля. Надеюсь, код понятен, и вы понимаете