python - 如何检查 pygame 上的天气或大写锁定是否打开

标签 python keyboard pygame

我在 pygame 程序中找到了某些代码,准确地说是:

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

True

当您在“Caps Lock”打开时按下“Caps Lock”,capslock

False

如果 capslock 已打开或 False 如果它已经关闭?

最佳答案

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

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 )

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

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

是的,我认为您还需要 Pygame 的按键事件来了解按键的状态,因此要提前了解它,您必须使用 Pygame 外部的方法。

关于python - 如何检查 pygame 上的天气或大写锁定是否打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43442170/

相关文章:

python - 运行 python manage.py 时出错

python - 无法使用 Python 中的检查通过 exec 获取方法 "declared"的源代码

javascript - 如何使用 javascript 检测硬件键盘的存在?

python - Pygame 中蒙版和发射光束的重叠 [AI 汽车模型视觉]

python - 如何在pygame中的屏幕内区域添加边界

python - 在 matplotlib 中绘制字符串值

python - 使用 matplotlib 在 x 轴上绘制时间

c# - WPF 将 "Menu"键称为什么?

java - android 键盘显示数字

python - 这个方 block 不动有什么原因吗?