如何解决Python 替代 while 循环和 time.sleep?
计划目的:
- Python 3
- PyCharm IDE
- 树莓派 4
在开始之前,我只想说我几天前才开始学习 Python 和编码,所以我知道我可能在学习过程中遗漏了一些东西。
此程序的预期功能是让交流有限的人能够说话或至少进行基本的交流。该程序的作用是自动开始在选项之间循环,并在其间设定时间间隔。这允许一个选项显示足够长的时间,以便人们单击一个按钮来选择该选项。然后将显示该选项。整个前提是通过单击一个按钮或其他单一的感官输入来促进交流。这个来自更大程序的示例只是询问用户“是吗?”或者没有?”但程序的其余部分使用相同的格式。目前,出于测试目的将选择“否”,因为它是硬编码的,直到我添加 GPIO 功能。
问题:
该程序完全符合我的需要,但现在我想让通常在 IDE 中使用 print() 返回的文本显示在 7" 屏幕上,以使其更加用户友好。因此,我需要制作一个 GUI。我需要它做的就是显示相同的文本。但是,从我读过的内容来看,由于连续显示循环,我的程序几乎都无法使用 GUI。
-
不能使用while循环
-
无法使用 sleep.time
该程序的两个最重要的功能是什么...我试图找到可以与 tkinter 或 Guizero 等基本功能一起使用的替代方案,但似乎没有什么是直接的解决方案。我看过线程,以及 Guizero 的后/重复功能,但到目前为止还没有让它们工作。
这个循环问题有简单的编程修复吗?通过使用外部时钟并通过 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 举报,一经查实,本站将立刻删除。