Я пытаюсь получить данные из окна Toplevel с Tkinter в полное окно Tk.
У меня есть меню Пуск Start.py, которое содержит класс Start.В меню «Пуск» есть кнопка, которая ведет к редактору карт в другом окне
self.config_4 = tk.Radiobutton(self.gamemode, text="Custom", value = 4, variable = val, command = self.set_custom)
, что приводит к
def set_custom(self):
self.editor = Editor(self.menu)
self.board = self.editor.getBoard()
self.board = Board(BoardType.CLASSIC)
Редактор - это другой файл, который открывает окно Toplevel и содержит атрибут self.board, которую я хочу получить в Start.py
Функция уничтожения останавливает оставшуюся часть выполнения и тоже завершает работу.Я попытался использовать grab_set и дождаться окна, но без mainloop редактор не работает должным образом.
Так что, в принципе, единственное, что я хочу - это получить self.board из Editor в Start, а затем из Start в main.И то, и другое - одна и та же проблема уничтожения.
Спасибо!
#First.py
import tkinter as tk
from Test import Second
class First:
def __init__(self):
self.window = tk.Tk()
self.test = tk.Button(self.window, command = self.popup, text="Test me").pack()
self.stop = tk.Button(self.window, command = self.window.destroy, text="Quit").pack()
self.window.mainloop()
def popup(self):
a = Second()
self.one = a.get_one()
def get_one(self):
return self.one
if __name__ == '__main__':
var = First()
print(var.get_one())
#######################
#Test.py
import tkinter as tk
class Second:
def __init__(self):
self.popup = tk.Toplevel()
myvar = tk.IntVar()
self.one = tk.Radiobutton(self.popup, text="one", value = 1, variable = myvar, command = self.set_one)
self.two = tk.Radiobutton(self.popup, text="two", value = 2, variable = myvar, command = self.set_two)
self.done = tk.Button(self.popup, command = self.popup.destroy, text = "Bye")
self.one.grid(row = 0, column = 0)
self.two.grid(row = 0, column = 1)
self.done.grid(row = 1, column = 0, columnspan = 2)
def set_one(self):
self.one = "Hi"
def set_two(self):
self.one = "Bye"
def get_one(self):
return self.one