问题描述
我想通过 AutoKey 获得按下的数字。 我的脚本可以工作,但速度很慢,而且看起来不太好。
import os,time,subprocess
def popupNotify(text):
subprocess.Popen(['notify-send',text]) # will be showed right top
pressed_key = 999999999999
for x in range(0,150):
retCode1 = keyboard.wait_for_keypress('<np_end>',modifiers=[],timeOut=0.01) # <== works
retCode2 = keyboard.wait_for_keypress('<np_down>',timeOut=0.01) # <== works
retCode3 = keyboard.wait_for_keypress('<np_page_down>',timeOut=0.01) # <== works
retCode4 = keyboard.wait_for_keypress('<np_left>',timeOut=0.001) # <== works
#retCode5 = keyboard.wait_for_keypress('5',timeOut=0.001) # <== works
#retCode5 = keyboard.wait_for_keypress('<code84>',timeOut=0.001) # <== not works,no error
if retCode1:
pressed_key = 1
if retCode2:
pressed_key = 2
if retCode3:
pressed_key = 3
if retCode4:
pressed_key = 4
if pressed_key != 999999999999:
break
popupNotify(str(pressed_key))
popupNotify("END END END END ")
我在这里读到:
系统
AutoKey (Qt) 0.95.10
Python 3.8.5
Operating System: Kubuntu 20xx
KDE plasma Version
解决方法
如果您想使用自动键从用户获取输入,我认为最好的方法是打开一个对话框:
import subprocess
a = dialog.input_dialog(title='Enter a value',message='Enter a value',default='')
subprocess.Popen(['notify-send',a.data]) # will be showed right top