Exp*_* HP 4 python curses capslock
对于这样一个基本问题,我很惊讶我找不到任何搜索...
无论如何,我用Python制作了一个curses应用程序,它有助于解决某个DSiWare游戏的难题.有了它,你可以拼图并单独检查它的组成部分.这些键qweasdzx用于绘制瓷砖(按键排列在某种调色板中).在按住Shift的同时按下其中一个按钮会突出显示该颜色的图块.我无法要求更自然的控制方案.
所以很遗憾,Shift再一次给了我一些问题(上次我遇到Shift问题时,我获得了Tumbleweed徽章).虽然这次,问题或多或少是Caps Lock,它通过反转功能完全搞砸了我的程序.
如何使用curses检测Python中Caps Lock的状态?
编辑:如果你打算建议使用一个单独的模块,我可能应该提醒你,curses - 因此我的程序 - 在UNIX领域.
我自己找到了一个解决方案:
由于curses根据ΤΖΩΤΖΙΟΥ完全不知道Caps Lock设置,我尝试了另一种解决方案.具体来说,我查找了如何在BASH脚本中检查Caps Lock.我发现的是:
仅限Linux.需要X Window系统.
$ xset q | grep LED
> auto repeat: on key click percent: 0 LED mask: 00000000
Run Code Online (Sandbox Code Playgroud)
该输出中的最后一个0(字符串中的第66个字符)是Caps Lock标志.如果它打开则为1,如果打开则为0.
Python可以使用仅Linux 命令模块运行UNIX系统命令.命令似乎不会干扰curses.
>>> import commands
>>> # Caps Lock is off.
>>> commands.getoutput("xset q | grep LED")[65]
'0'
>>> # Setting Caps Lock on now.
>>> commands.getoutput("xset q | grep LED")[65]
'1'
Run Code Online (Sandbox Code Playgroud)
这对我来说很好; 这是一个个人使用的脚本,并不像我的程序不是Linux专有的.但我希望有人能拥有另一个更兼容Windows的解决方案.
我现在要接受这个自我回答,但如果其他人能够提出更好的解决方案,我希望看到它.
| 归档时间: |
|
| 查看次数: |
1872 次 |
| 最近记录: |