Динамическое значение в текстовом поле GUI Python
Необходимо создать окно Python, в котором было бы текстовое поле, которое получало бы изменяющиеся значения.
Например, курс валют или погода, которая в реальном времени отображалась бы в текстовом поле и обновлялось без нажатия на кнопку.
Вот пример кода.
from tkinter import *
window = Tk()
window.title("Прога")
lbl = Label(window, text="Привет")
lbl.grid(column=0, row=0)
window.mainloop()
Ответы (2 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так:
from tkinter import *
window = Tk()
window.title("Прога")
labelText = StringVar() # +++
# lbl = Label(window, text="Привет")
lbl = Label(window, textvariable=labelText) # + textvariable=labelText
lbl.grid(column=0, row=0)
# +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
i = 0
def updateDepositLabel(i, txt="Привет"):
labelText.set(txt) # +++
i += 1
text = f"Привет {i}"
window.after(1000, lambda: updateDepositLabel(i, txt=text))
window.after(0, lambda: updateDepositLabel(i, txt=f"Привет {i}"))
# +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
window.mainloop()
Автор решения: Александр
→ Ссылка
from tkinter import Tk, Entry, Label
class App(Tk):
text = ''
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
entry = Entry()
entry.grid()
entry.bind("<Key>", self.handle_entry)
self.label = Label()
self.label.grid()
def handle_entry(self, key):
# cprint(key.char)
self.text += key.char
self.label['text'] = self.text
def main():
App().mainloop()
if __name__ == '__main__':
main()
