Постоянно обновлять текст в окне сообщения tkinter

Я учусь программировать Python на своем Raspberry Pi. Я использую сканер Bluetooth OBD2 и этот код для получения ответов. Я хотел бы, чтобы окно сообщения постоянно обновляло RPM. Я долго искал решение, но не смог найти.

import obd
from tkinter import *
connection = obd.Async()
connection.watch(obd.commands.RPM)
connection.start()
master = Tk()
response_RPM=connection.query(obd.commands.RPM)
msg = Message(master, textvariable = connection.query(obd.commands.RPM))
msg.config(bg='lightgreen', font=('times', 24, 'italic'))
msg.pack()
mainloop()

person jaguar419    schedule 11.11.2017    source источник


Ответы (1)


Определите обратный вызов для обработки изменений RPM, например. update_message_text и передайте его в качестве второго аргумента в connection.watch.

from tkinter import *

import obd


connection = obd.Async()

master = Tk()
message_text = StringVar()
msg = Message(master, textvariable=message_text)

def update_message_text(rpm, message_text):
  message_text.set(rpm.value)

connection.watch(
    obd.commands.RPM, 
    lambda rpm, message_text=message_text: update_message_text(rpm, message_text)
)
connection.start()

msg.config(bg='lightgreen', font=('times', 24, 'italic'))
msg.pack()

mainloop()
person Oluwafemi Sule    schedule 11.11.2017