2017-11-11 111 views
0

我在教我自己在我的覆盆子pi上编写python。我正在使用蓝牙OBD2扫描仪和此代码来获取响应。我想要消息框继续更新RPM。我一直在寻找解决方案,但一直无法适应。不断刷新tkinter消息框中的文本

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

回答

0

定义回调以处理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()