Как я могу использовать больше окон с кнопкой одновременно с 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)

Мне нужно нажать кнопку во втором окне, чтобы сохранить данные, которые я вставляю в текстовые поля. Надеюсь, код понятен, и вы понимаете

0 ответов

Другие вопросы по тегам