2009-05-15 10 views
2

私はSymbol LS2208バーコードスキャナを持っていて、自分のLinuxボックス(Kubuntu 8.10 Intrepid Ibex)で正常に動作します。バーコードをスキャンするたびに、スキャナー(USBポートに接続されている)は、テキストキャレットがどこにある場合でも読み取りを送信します。私はスキャナからのすべての読み取り値をアプリケーションの特定のウィジェット(テキストエディットコントロール)にリダイレクトしたいと思います。どうしたらいいですか? Qt GUIライブラリでC++を使用していますが、サンプルコードはどの言語やGUIライブラリでも構いません。バーコードスキャナの入力をLinuxの特定のウィジェットにリダイレクト

+3

私はこれまでキーボードを使っていました。 AFAICRは入力をリダイレクトする方法がありません。 – dsm

+0

...メーカーのウェブサイトで確認する – dsm

答えて

2

私は答えを知らないが、ここにあなたのオプションが何であるかを見つけるためにいくつかの提案です:

  1. は、()(QCoreApplication ::インスタンスにイベントフィルタをインストールします(またはQCoreApplicationを再実装::通知は、 ))イベントフィルタハンドラ、出力便利なものを探して、各イベントには
  2. void eventFilter(QObject *obj, QEvent *evt) { 
        qDebug() << obj << evt; 
    } 
    
  3. は、スキャナによってトリガーされるイベントを決定するためにデバッグ出力を調べます。

qDebug()は事実上すべての型を理解しており、それがキーボードイベントなどで来ているかどうかを伝えることができます。

4

これは、ほとんどのバーコードスキャナがキーボードウェッジとしても知られている点で難しいかもしれません。それらはキーボードとして機能し、できるだけキーボードと区別がつかないようにイベントストリームにキーを押し込みます。これにより、最大の互換性が得られます。

多くのUSBバーコードスキャナは、HIDエンドポイントとして公開し、すべての目的と目的のために、キーボードです。

多くのことができます。多くのスキャナは、バーコードデータの前後に接頭辞と接尾辞を付けて表示するように設定できます。それをテストすることができれば、文字列を正しい場所に送るだけです。これは、スキャナをメタプログラムする必要があるという点では不都合です。通常、これは特別なバーコードセットで行われます。お使いのスキャナのHere is a link to the manual。 249ページで、接頭辞と接尾辞をメタプログラミングするためのバーコードがあります。

HIDイベントのクライアントになる方法を理解し、必要に応じてスキャナイベントをリダイレクトすることができます。私はLinuxでこれをやろうとしたことはありません。これは、WindowsとOS 9の時代のMac(私がUSBで広範囲にプレイした最後の時間)の両方に苦労しています。

1

受け入れられた回答に問題があるようです。入力は、アクティブなアプリケーションとみなされるものによって処理されます。したがって、誰かがWebブラウザを起動してからバーコードのスキャンを開始すると、入力はアプリケーションではなくWebブラウザに送られます。目的のアプリケーションでもイベントが表示されません。

アプリケーションがアクティブな場合は、イベントをトラップして、バーコードスキャナからどのイベントが発生しているかを特定できます。その後、適切なウィジェットをアクティブにして入力を受け取ることができます。

関連する問題