Python 替代 while 循环和 time.sleep?

如何解决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.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?