Python-在脚本后台运行 while 循环

标签 python while-loop raspberry-pi lcd

所以我有这个脚本来控制 LCD 板,我希望每次按下按钮时背光都会改变,但也想做其他事情。目前这不起作用,并且它不会显示我想要的消息。

这是更改背光的代码:

while True:
    for b in btn:
        if lcd.buttonPressed(b):
            lcd.backlight(col[randint(0,5)])

然后我想继续运行一些代码,以这种方式将字符串打印到液晶屏和其他东西:

lcd.message("This is a string")

但脚本不会打印字符串,它只是停留在背光更改-y 位上。

基本上,我正在创建一个字母索引,您可以使用 LCD 按钮在其中移动,并且希望每次按下按钮时背光都会改变。

最佳答案

标准方法是使用一个包含两者的循环。在循环中,您首先处理任何输入或状态更改。然后在循环结束时更新显示。这是游戏编程中相当常见的范例,请参阅 pygame 了解大量示例。只有当你的程序终止时你才会中断。值得指出的一件事是,您不希望阻止检查按键(或任何输入),否则您将保持显示屏等待输入。

sudo 代码类似于:

while True:
    for event in key_presses():
        handle_event(event)  # stuff that happens as a result of input
    update_state()  # stuff that happens regardless of input
    update_display()  # everything that changes the display (backlight, text, anything)

关于Python-在脚本后台运行 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19124031/

相关文章:

python - 如何使用 pandas 和 matplotlib 生成离散数据以传递到等高线图?

java - 当 ResultSet 没有执行时?

Java - 线程崩溃后应用程序无法正常工作

python - Keras:训练时出现值错误

python - BeautifulSoup findall 返回空列表

php - while 循环不适用于 max(eno) 查询

python - 如何循环一个函数以每 15 分钟执行一次任务(在 0/15/30/45 分钟标记处)?

linux - 如何处理来自摄像机的实时流的 V4L2 中的各个帧?

Python 找不到已安装的模块

php - 如果sql值存在php while循环将1添加到变量并执行脚本