En utilisant xvkbd pour lire un code à barres. Comment désactiver la touche Entrée?
-
12-09-2019 - |
Question
J'utilise zbarcam pour lire un code barre à partir d'une webcam dans mes webapps. Mais, depuis zbarcam afficher un \ n à la fin, ma forme est soumettre.
Voici ce que j'utilise:
read_one.py
#!/usr/bin/python
from sys import argv
import zbar
import webbrowser
# create a Processor
proc = zbar.Processor()
# configure the Processor
proc.parse_config('enable')
# initialize the Processor
device = '/dev/video0'
if len(argv) > 1:
device = argv[1]
proc.init(device)
# enable the preview window
proc.visible = True
# read at least one barcode (or until window closed)
proc.process_one()
# hide the preview window
proc.visible = False
# extract results
for symbol in proc.results:
# do something useful with results
print symbol.data
keyboard.sh
python read_one.py | xvkbd -file -
Comment puis-je soit supprimer le « \ n » avant d'envoyer le code à barres XVKBD ou désactiver la touche entrée dans xvkbd?
La solution
Essayez ceci:
printf "$(python read_one.py)" | xvkbd -file -
Autres conseils
Pour enlever le saisir:
print symbol.data.strip()
Mais un programme pipeable qui fait cela est un peu méchant. Vous pouvez simplement envoyer directement à xvkbd de votre programme (et pas besoin de fichier si vous ne me dérange pas passer la chaîne dans args):
import subprocess # at appropriate place
subprocess.call(['xvkbd', '-text', symbol.data.strip()])
Cela évite aussi une autre shell et script à exécuter.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow