Question

J'ai un scanner de codes à barres Symbol LS2208 et fonctionne bien dans ma boîte Linux (Kubuntu 8.10 Intrepid Ibex). Chaque fois que vous scannez un code à barres du scanner (connecté à un port USB) envoie la lecture à l'endroit où le texte est caret. Je voudrais rediriger toutes les lectures du scanner à un widget de spécifique dans mon application (à savoir un contrôle d'édition de texte). Comment puis-je le faire? Bien que j'utilise C ++ avec Qt GUI exemple de code de la bibliothèque est la bienvenue dans une bibliothèque de langue ou de l'interface graphique.

Était-ce utile?

La solution

Je ne connais pas la réponse, mais voici quelques suggestions pour savoir quelles sont vos options:

  1. Installez un filtre d'événements sur QCoreApplication :: instance () (ou réimplémenter QCoreApplication :: Notify ())
  2. gestionnaire de filtre d'événements, sortie chaque événement à la recherche de quelque chose d'utile:

    void eventFilter(QObject *obj, QEvent *evt) {
        qDebug() << obj << evt;
    }
    
  3. Examinez la sortie de débogage pour déterminer quels événements sont déclenchés par le scanner.

qDebug () comprend pratiquement tous les types et devrait vous donner le rendement raisonnable qui vous permettra de dire si l'on vient en tant qu'événements de clavier ou autre chose.

Autres conseils

Cela peut être difficile car la plupart des scanners de codes à barres sont également connus comme des coins du clavier. Ils fonctionnent comme un clavier et shove clés dans le flux d'événements de manière à être aussi impossibles à distinguer d'un clavier possible. Ceci en fait la plus grande compatibilité.

De nombreux scanners de codes à barres USB se publient en tant que point final HID et à toutes fins utiles, ils sont des claviers.

Il y a un certain nombre de choses que vous pouvez essayer de faire - de nombreux scanners sont configurables pour leur permettre de crachent dans un préfixe et le suffixe autour des données de codes à barres. Si vous pouvez tester pour cela, vous envoyez simplement la chaîne au bon endroit. Ceci est non consommable en ce que vous devez métaprogramme le scanner. Habituellement, cela se fait avec un ensemble spécial de codes à barres. Voici un lien vers le manuel de votre scanner. A la page 249, il y a des codes à barres pour Méta le préfixe et le suffixe.

Vous pouvez comprendre comment être un client pour les événements HID et rediriger les événements du scanner où vous le souhaitez. Je ne l'ai jamais essayé de le faire sur LINUX. Il est une douleur sur Windows et OS 9 ère Mac (la dernière fois que je jouais avec USB largement).

Il semble qu'il y ait un problème avec la réponse acceptée. L'entrée va être traitée par tout ce qui est considéré comme l'application active. Ainsi, si quelqu'un apporte un navigateur Web, puis commence à numériser des codes à barres, l'entrée passe au navigateur Web et non l'application. L'application souhaitée ne voit pas même les événements.

Si l'application est active, vous pouvez piéger les événements et éventuellement comprendre ceux qui proviennent du scanner de codes à barres. Ensuite, le widget approprié peut être activé pour recevoir l'entrée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top