0
0 комментариев

Есть два куска кода. Первый подписывается на топик MQTT-сервера и получает значение. Второй — интерфейс Tkinter. Вопрос, как заставить программу менять текст Label в реальном времени, то есть записывать в него полученное значение?

Собственно, как эти два куска объединить, чтоб text2 отображал значение teacher в реальном времени? Я так понимаю, что проблема объединения заключается в том, что и 1 и 2 кусок кода должны быть зациклены. Если их запихать в один код (как есть), то получается, что работает либо одно, либо другое.[apcode language=»python»]

import paho.mqtt.client as mqtt
 def on_connect(client, userdata, flags, rc):
    #print("Connected with result code: " +str(rc))
    client.subscribe("/test/nfc")
  def on_message (client, userdata, msg):
    global teacher
    #print(str(msg.topic),str(msg.payload))
    teacher=str(msg.payload)
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("сервер", порт, 60)
client.username_pw_set("логин","пароль")
client.loop_forever()

[/apcode]

[apcode language=»python»]

from tkinter import *
root = Tk()
root.title("Карта")
root.geometry("1600x900")
root.configure(bg="white")
text1 = Label(root, text="1", bg='white', font='Times 20')
text1.grid(row=0, column=3)
text2 = Label(root, text=teacher, bg='white', font='Times 20')
text2.grid(row=0, column=4)
root.mainloop()

[/apcode]


Добавить комментарий