用python立即将打印键按下到屏幕上
|
我知道这个问题很长,但我真正想知道的是黑体字。
我希望在Linux上使用python。
我正在尝试制作一种类似于devorak的新键盘布局,但是根据您是否握有热键,该布局被设置为layout1或layout2(热键可能应该是ctrl?)
例如按d-> \“ z \”使用键layout1打印到屏幕
例如按ctrl d-> \“ x \”使用按键layout2打印到屏幕
我的主要问题(以及需要回答的问题)是字符需要在屏幕上打印的方式。
如果有人按此顺序按下键,则\“(a)(b)(c)(d)(ctrl + d)(shift + e = E)(f)(Enter)\”
现在让我们说这些按键的输出应该是“ oijzxKb”
我不希望输出用新行呈现:
o
i
j
z
x
K
b
我希望这些字符在按下每个字符时立即出现在屏幕上(而不必等待它们按Enter键)。
e.g.
press o
Screenshot1 o
press i
Screenshot2 oi
press j
Screenshot3 oij
.. etc
我认为我将需要以下内容:
一种即时读取按键的方法
一种即时打印按键的方法(如果可以在任何很棒的编辑器上使用,则可以立即打印到终端或GUI或最简单的工具!)
我可能可以在PyGame中做到这一点(但后来我可能无法剪切和粘贴等),我猜测应该有一种更简单的方法。
我正在使用Logitech G110键盘,我可能最终希望在所有设备上的所有应用程序中将此键盘替代qwerty键盘。
谢谢!
编辑:解决方案:
多亏了第一个回应,
从http://code.activestate.com/recipes/134892/使用Getch
getch = _Getch()
word=\"\"
while True:
c=getch.impl()
if c==\"a\":
word+=\"z\"
elif ord(c)==127: #backspace
word=word[:-1]
else:
word+=c
print word
现在就足够了,谢谢。一旦对优化感到满意,我将考虑做一些底层操作,特定于操作系统而不使用python。
但是getch的一个问题是ctrl + A不能区分ctrl + A(例如,如果按住ctrl并按键,则无法区分大小写)
没有找到相关结果
已邀请:
2 个回复
告耸
。看一看,然后尝试复制和编辑一个。然后可以使用ѭ5更改当前的键盘映射。
呢率篓舍烫
。不要忘记使用
选项创建当前键盘映射的备份,因为这会导致错误-然后,键盘将不再起作用。 如果您还希望新的键盘映射在控制台上工作,请查看
软件包,该软件包会在内核级别更改键盘布局。