2017-04-16 31 views
1

我發現某些代碼在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 
當你按下

「大寫鎖定」,而它是關閉的,capslock

True 

,當你按下 「大寫鎖定」,而它在,capslock

False 

相反在開始時使capslock等於False,如果已經打開了大寫鎖定,我如何使它等於True?如果它已經關閉,如何將它等於False

+0

Pygame只能檢查一個鍵是否被按下,所以你將需要尋找一個外部庫 – abccd

回答

0

在Linux上(與Python 3.6的Linux Mint的18.1測試),可以使用:

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()給你,如果大寫鎖定爲ON,如果CapsLock已關閉。理論上它應該是0和1,而不是50,51,但在我的盒子上是50,51。

你也可以看看"Python - How to get current keylock status?"瞭解更多信息。

是的,我想你也需要Pygame的一個按鍵事件來知道按鍵的狀態,所以要提前知道它必須使用Pygame以外的方法。

相關問題