У вас есть 2 основные причины, по которым ваш ярлык (не текст) виджет не обновляется.
Причина 1. Вам необходимо обработать событие, которое передается в update_status
из привязки. Для этого просто добавьте event
или любое имя аргумента, которое вам действительно нужно. Я просто использую event
для удобства чтения.
def update_status(self, event):
Причина 2. Вам нужно, и для некоторых менее очевидной причиной является то, как вы используете StringVar()
в виджете метки. Здесь вы присваиваете текущее текстовое значение StringVar()
только один раз и никогда больше. Чтобы правильно использовать StringVar()
с виджетом метки, вам нужно будет присвоить StringVar()
аргументу textvariable
, а не text
аргументу.
Как это:
Label(self,textvariable=self.commandent1).grid()
Заметьте, я вынул часть изображения вашего кода, поскольку она не имела отношения к вопросу. Ваш окончательный код должен выглядеть примерно так:
from tkinter import *
class First_Frame(Frame):
def __init__(self, master):
super().__init__()
self.grid()
self.widgets()
def widgets(self):
self.commandent1 = StringVar()
self.commandent1.set("tutaj bedzie sie pokazywal aktualny status")
Label(self,text="twoje gui uzytkownika").grid()
self.widgets_2()
def widgets_2(self):
self.entry1 = Entry(self)
self.entry1.bind("<Return>", self.update_status)
self.entry1.grid()
Label(self,textvariable=self.commandent1).grid()
def update_status(self, event):
self.commandent1.set(self.entry1.get())
root = Tk()
First_Frame(root)
root.mainloop()