2017-11-11 3 views
0

Ich lehre mich, Python auf meinem Raspberry Pi zu codieren. Ich verwende einen Bluetooth-OBD2-Scanner an und diesen Code, um Antworten zu erhalten. Ich möchte, dass das Meldungsfeld die RPMs fortlaufend aktualisiert. Ich habe eine Weile nach einer Lösung gesucht, konnte aber nicht passen.Text in tkinter Message Box ständig aktualisieren

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() 

Antwort

0

Definieren Sie einen Rückruf, um RPM-Änderungen z. update_message_text und übergeben Sie das als zweites Argument an 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()