Как отправить данные из дочернего окна в основное?

Здравствуйте!

Подскажите пожалуйста, хочу сделать форму на Python`е, которая при нажатии кнопки на форме, открывает дочернее окно, где вводится какая-то информация, после чего, нажимаем "Принять", и отправляется обратно на основную страницу, где заменяет собой кнопки формы.

Как это сделать?
Пользователь не будет регистрироваться в программе, так что, думаю база данных не особо нужна, или нужна?
Хочу это использовать, для дальнейшей работы с таким документом, где человек сможет его выкачать в PDF файле, либо распечатать, либо снова вернуться к работе с ним.

Вот код:
from tkinter import*

def Table_of_contents(event):
    children = Toplevel(root) #Создаём дочернее окно для ввода оглавления.
    children.title("Оглавление")
    
    Toc_entry = Entry(children) #Создаём поле для ввода.
    Toc_entry.pack()
    
    Toc_e_btn = Button(children, text = "Принять")
    Toc_e_btn.pack()
    
root = Tk()

root.title("Титульный лист")
root.state('zoomed')

btn1 = Button(root, text = "Оглавление")
btn1.bind('<Button-1>', Table_of_contents)
btn1.pack()

Button(text = "Исполнитель").pack()

root.mainloop()


Если есть другие более лёгкие или правильные варианты, расскажите пожалуйста о них, буду признателен.

Спасибо,
Вячеслав Марвин.
  • Вопрос задан
  • 743 просмотра
Пригласить эксперта
Ответы на вопрос 1
SuckMyPython
@SuckMyPython
matrix.polling(none_stop=True)
Прошу Вас!

Считать текст с Entry можно методом ".get()"
Я не совсем понял куда должен отправиться введённый текст, так что сделал замену кнопки "Исполнитель" введённым текстом. Вы можете добавлять а не заменять кнопку.

з.ы. Возможно global использовано излишне или чересчур;)

# -*- coding: utf8 -*-
from tkinter import*
import tkinter.ttk as ttk

def teget():
	global Toc_entry
	global btn2
	btn2.destroy()
	btn2 = Button(root, text = Toc_entry.get())
	#btn2.bind('<Button-1>', ???)
	btn2.pack()
	global children	
	children.destroy()

def Table_of_contents(event):
	global children
	children = Toplevel(root)
	children.title("Оглавление")
    
	global Toc_entry
	Toc_entry = Entry(children)
	Toc_entry.pack()

	Toc_e_btn = Button(children, text = "Принять", command=teget)
	Toc_e_btn.pack()

	
root = Tk()

root.title("Титульный лист")
#root.state('zoomed')

btn1 = Button(root, text = "Оглавление")
btn1.bind('<Button-1>', Table_of_contents)
btn1.pack()

global btn2
btn2 = Button(root, text = "Исполнитель")
#btn2.bind('<Button-1>', ???)
btn2.pack()

root.mainloop()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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