Python 替代 while 循环和 time.sleep?

问题描述

计划目的:

  • Python 3
  • PyCharm IDE
  • 树莓派 4

在开始之前,我只想说我几天前才开始学习 Python 和编码,所以我知道我可能在学习过程中遗漏了一些东西。

此程序的预期功能是让交流有限的人能够说话或至少进行基本的交流。该程序的作用是自动开始在选项之间循环,并在其间设定时间间隔。这允许一个选项显示足够长的时间,以便人们单击一个按钮来选择该选项。然后将显示该选项。整个前提是通过单击一个按钮或其他单一的感官输入来促进交流。这个来自更大程序的示例只是询问用户“是吗?”或者没有?”但程序的其余部分使用相同的格式。目前,出于测试目的将选择“否”,因为它是硬编码的,直到我添加 GPIO 功能

问题:

该程序完全符合我的需要,但现在我想让通常在 IDE 中使用 print() 返回的文本显示在 7" 屏幕上,以使其更加用户友好。因此,我需要制作一个 GUI。我需要它做的就是显示相同的文本。但是,从我读过的内容来看,由于连续显示循环,我的程序几乎都无法使用 GUI。

  • 不能使用while循环

  • 无法使用 sleep.time

该程序的两个最重要的功能是什么...我试图找到可以与 tkinter 或 Guizero 等基本功能一起使用的替代方案,但似乎没有什么是直接的解决方案。我看过线程,以及 Guizero 的后/重复功能,但到目前为止还没有让它们工作。

我需要解决什么来解决问题:

  • 处理自动选项循环间隔的不同方式
  • 一种替换while循环的方法

这个循环问题有简单的编程修复吗?通过使用外部时钟并通过 GPIO 引脚读取它,我是否能够以某种方式解决这个问题?我能得到的任何帮助将不胜感激。与此同时,我将继续寻找解决方案。谢谢!

import time


def yesnomode():
    count = 0
    switch_state = 15  # Variable that holds live value
    switch_thresh = 10  # Variable to tune the threshold
    button_state = 0  # Variable that holds live value
    button_thresh = 10  # Variable to tune the threshold
    rate = 1.5  # Rate that the options will cycle
    print("Beginning Yes or No Mode")
    while switch_state >= switch_thresh:  # if switch reaches threshold then begin letter cycling
        count = count + 1
        time.sleep(rate)  # This is the rate that the letters will cycle
        if count == 1:
            print("Yes?")
            if button_state >= button_thresh:
                print("Yes Selected")
                time.sleep(rate)
        if count == 2:
            print("No?")
            button_state = 10
            if button_state >= button_thresh:
                time.sleep(rate)
                print("No Selected")
                button_state = 0
        if count == 3:
            count = 0


yesnomode()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...