假设我想用python编写一个非常简单的程序来指示长按一个键。所以如果我键入并按住“j”键几分钟,我
我想写一个程序,能够显示像’的关键信息按下“j”键1.1秒。
据我所知,实现这一点的方法应该是通过检测为KEYDOWN事件和KEYUP事件添加时间戳,并使
时间戳的减法。所以检测KEYDOWN和keypup就足够了事件。有各种各样的问题和答案,所以关于检测一个单次按键或关于检测单字符输入,),两者都使用一些
格奇的形式。我已经查看了python诅咒库,并且尽我所能
密钥检测的主要形式也是以单个字符的形式获取()。但它们不检测按键的长度,它们只检测按下键。我认识到检测按键的长度是一项必要的任务游戏,所以我希望pygame有检测按键持续时间的方法。但我希望有可能使用更苗条、更直接的方法库来检测按键持续时间。
You can use this code:
from pynput import keyboard
import time
def on_key_release(key): #what to do on key-release
time_taken = round(time.time() - t, 2) #rounding the long decimal float
print("The key",key," is pressed for",time_taken,'seconds')
return False #stop detecting more key-releases
def on_key_press(key): #what to do on key-press
return False #stop detecting more key-presses
with keyboard.Listener(on_press = on_key_press) as press_listener: #setting code for listening key-press
press_listener.join()
t = time.time() #reading time in sec
with keyboard.Listener(on_release = on_key_release) as release_listener: #setting code for listening key-release
release_listener.join()
pygame
: (Good)import time
import pygame
import os
os.environ["SDL_VIDEO_CENTERED"] = "1"
screen = pygame.display.set_mode((600, 600))
pygame.display.set_caption("Time")
clock = pygame.time.Clock()
pygame.init()
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.quit()
break
if event.type == pygame.KEYDOWN:
# detect key 'a'
if event.key == pygame.K_a: # key 'a'
t = time.time()
if event.type == pygame.KEYUP:
if event.key == pygame.K_a: # key 'a'
t = time.time() - t; t = str(t); t = t[:5]
print("You pressed key 'a' for",t,'seconds')
screen.fill((255, 255, 255))
pygame.display.update()
clock.tick(40)
It will only detect the keys that you will write in the code.
Use pip install pynput
to install pynput
.
Use pip install pygame
to install pygame
.
问题内容: 假设我想在python中编写一个非常简单的程序,该程序指示按下键的时间。因此,如果我键入并按住片刻不放,我希望编写一个能够显示类似信息的程序。 据我了解,应该通过检测并标记KEYDOWN事件和KEYUP事件并加时间戳,并适当减去时间戳来实现。因此,检测到KEYDOWN和KEYUP事件就足够了。 关于SO的检测和按键检测或单个字符输入检测等各种各样的问题和答案,都使用某种形式的getch
问题内容: 是否有可能使系统似乎已按下某个键,例如我需要使按键被按下数千次,而手动执行该操作很费时间,我想写点东西来做对我来说,我唯一了解的是Python。 更好的表达方式是,我需要模拟一个按键,IE无法捕获按键。 更多信息(按要求):我正在运行Windows XP,需要将密钥发送到另一个应用程序。 问题答案: 安装pywin32扩展。然后,您可以执行以下操作: 搜索WScript.Shell对象
问题内容: 我正在用python开发一个秒表类型的程序,我想知道如何检测是否按下了一个键(例如p表示暂停,s表示停止),而我不希望它像raw_input这样等待用户输入,然后继续执行。有人知道如何在while循环中执行此操作吗? 另外,我想做这个跨平台的,但是如果那不可能,那么我的主要开发目标是linux 问题答案: 对于那些在窗户上努力寻找可行答案的人,我的是:pynput 上面的功能将打印你按
本文向大家介绍Python中按值来获取指定的键,包括了Python中按值来获取指定的键的使用技巧和注意事项,需要的朋友参考一下 Python字典中的键是唯一的,但不同的键可以对应同样的值,比如说uid,可以是1001。id同样可以是1001。这样的话通过值来获取指定的键,就不止一个!而且也并不太好处理。这里同样提供两种思路来处理。 方法一: 方法二: 上面的两种方法可以很方便高效的来处理字典中按值
本文向大家介绍Python中按键来获取指定的值,包括了Python中按键来获取指定的值的使用技巧和注意事项,需要的朋友参考一下 Python中按键来获取值,相对来说要容易些,毕竟只需要dict[key]就可以找到,但里面同样有个问题,如果其中的键不存在的话,会抛出异常,如果不用try...except...等异常处理机制的话,程序就会中断!这里提供两种很安全,很健壮的处理方法。 方式一: dic
问题内容: 我将如何在Python中“按任意键”(或抓住菜单选项)? raw_input要求您按回车键。 Windows msvcrt具有getch()和getche()。 有使用标准库执行此操作的可移植方法吗? 问题答案: