【问题标题】:Refresh text in tkinter message box constantly不断刷新tkinter消息框中的文本
【发布时间】:2018-04-24 09:39:25
【问题描述】:

我正在自学在我的树莓派上编写 python 代码。我正在使用蓝牙 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()

【问题讨论】:

    标签: python tkinter refresh obd-ii


    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-07
      • 2021-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多