from tkinter import * 
 
class Window(Tk): 
        def __init__(self): 
                super().__init__() 
                self.count = 0
                self.labels = []
                self.widgets = []
 
        def TextValue(self, text: str, value: str): 
                self.labels += [Label(text = text, font = "Arial 18")] 
                self.labels[-1].master = self 
                self.labels[-1].grid(row = self.count, column = 0) 
 
                self.widgets += [Entry(font = "Arial 18")] 
                self.widgets[-1].master = self 
                self.widgets[-1].insert(0, value) 
                self.labels[-1].grid(row = self.count, column = 1) 
                self.count += 1 
 
win = Tk() 
win.title("Окно 1") 
 
root = Window() 
root.title("Окно 2") 
 
win.bind("", lambda event: root.TextValue("label text", "entry text")) 
Label и Entry должны быть отображены в Окне 2.
Однако выводиться только Label, и то в Окне 1.
В чём ошибка в коде?
 
	
	
		
		
								
				В коде есть несколько проблем, которые мешают виджетам `Label` и `Entry` отображаться в "Окне 2".
1. В методе `TextValue`, вы случайно присваиваете `grid()` методу `Label` вместо `Entry`, что приводит к тому, что `Entry` не отображается.
2. Вы создаете два экземпляра класса `Tk`, что может привести к непредсказуемому поведению, так как каждое окно `Tk` должно быть отдельным корневым окном приложения.
Для исправления этих проблем, следует внести следующие изменения:
```python
from tkinter import *
class Window(Toplevel):  # Изменяем класс Window на Toplevel
    def __init__(self, master=None):  # Добавляем параметр master
        super().__init__(master)
        self.count = 0
        self.labels = []
        self.widgets = []
    def TextValue(self, text: str, value: str):
        self.labels += [Label(self, text=text, font="Arial 18")]  # Используем self в качестве родительского окна для Label
        self.labels[-1].grid(row=self.count, column=0)
        self.widgets += [Entry(self, font="Arial 18")]  # Используем self в качестве родительского окна для Entry
        self.widgets[-1].insert(0, value)
        self.widgets[-1].grid(row=self.count, column=1)
        self.count += 1
win = Tk()
win.title("Окно 1")
root = Window(win)  # Передаем win как родительское окно для Window
root.title("Окно 2")
win.bind("<ButtonPress-3>", lambda event: root.TextValue("label text", "entry text"))
win.mainloop()  # Запускаем основной цикл обработки событий для окна win
```
Теперь `Label` и `Entry` будут корректно отображаться в "Окне 2". Также мы изменили класс `Window` на `Toplevel`, чтобы сделать его подокном для окна `win`, что позволит нам отображать его в "Окне 2".
				
							 
								
				В коде есть ошибка в методе `TextValue`. Вы пытаетесь разместить оба виджета `Label` и `Entry` на одной и той же ячейке сетки, и из-за этого только `Label` отображается. Один из виджетов будет перекрывать другой. 
 
Чтобы исправить это, вам нужно изменить размещение виджетов на разные ячейки сетки. Вот исправленный метод `TextValue`: 
 
```python 
def TextValue(self, text: str, value: str):  
    self.labels += [Label(text=text, font="Arial 18")]  
    self.labels[-1].master = self  
    self.labels[-1].grid(row=self.count, column=0)  
 
    self.widgets += [Entry(font="Arial 18")]  
    self.widgets[-1].master = self  
    self.widgets[-1].insert(0, value)  
    self.widgets[-1].grid(row=self.count, column=1)  
    self.count += 1  
``` 
 
Теперь `Label` и `Entry` будут отображаться в разных ячейках сетки, и вы должны увидеть оба виджета в Окне 2. 
 
Также, обратите внимание, что вы создаете два экземпляра класса `Tk`: `win` и `root`. Это не рекомендуется, так как каждый экземпляр `Tk` создает свое собственное главное окно приложения. Вам следует использовать только один экземпляр `Tk` в вашем приложении, и для второго окна вы можете использовать класс `Toplevel`. Вот исправленный код с использованием `Toplevel`: 
 
```python 
from tkinter import *  
  
class Window(Toplevel):  
    def __init__(self, master=None):  
        super().__init__(master)  
        self.count = 0 
        self.labels = [] 
        self.widgets = [] 
        self.title("Окно 2") 
  
    def TextValue(self, text: str, value: str):  
        self.labels.append(Label(self, text=text, font="Arial 18"))  
        self.labels[-1].grid(row=self.count, column=0)  
 
        self.widgets.append(Entry(self, font="Arial 18"))  
        self.widgets[-1].insert(0, value)  
        self.widgets[-1].grid(row=self.count, column=1)  
        self.count += 1  
  
win = Tk()  
win.title("Окно 1")  
  
root = Window(win)  
  
win.bind("<ButtonPress-3>", lambda event: root.TextValue("label text", "entry text")) 
 
win.mainloop() 
``` 
 
Теперь у вас должно работать два окна, и виджеты `Label` и `Entry` будут отображаться в Окне 2.