首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查pygame上是否打开了capslock?

如何检查pygame上是否打开了capslock?
EN

Stack Overflow用户
提问于 2017-04-17 05:08:46
回答 1查看 649关注 0票数 1

我在pygame程序中发现了某些代码,确切地说是:

代码语言:javascript
复制
caplock = False
for event in pygame.event.get():
    if event.type == pygame.KEYDOWN:
       if event.key == pygame.CAPSLOCK:
          capslock = True

    if event.type == pygame.KEYUP:
       if event.key == pygame.CAPSLOCK:
          capslock = False

当你在关闭的时候按下"caps lock“,capslock

代码语言:javascript
复制
True

当你在打开的时候按下"caps lock“,capslock

代码语言:javascript
复制
False

不是让capslock在一开始就等于False,而是如何让它等于True,如果它已经打开,或者False,如果它已经关闭了?

EN

回答 1

Stack Overflow用户

发布于 2017-04-17 05:39:35

在Linux (在带有Python 3.6的Linux Mint 18.1上测试)上,您可以使用:

代码语言:javascript
复制
import subprocess
if subprocess.check_output('xset q | grep LED', shell=True)[65] == 50 :
    capslock = False
if subprocess.check_output('xset q | grep LED', shell=True)[65] == 51 :
    capslock = True
print( "capslock ON is : ", capslock )

如果不起作用,检查subprocess.check_output()给出的值是否为CapsLock,CapsLock是否为OFF。理论上它应该是0和1,而不是50,51,但在我的盒子上是50,51。

您还可以查看"Python - How to get current keylock status?"以获取更多信息。

是的,我认为你还需要一个来自Pygame的按键事件来了解按键的状态,所以要提前知道它,你必须使用来自Pygame外部的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43442170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档