バーコードスキャンをキャプチャしようとしています。USBバーコードスキャナとKivy
レーベル::
self.code = ' '
self.status = tk.Label(frameStatus, text="Scanner is waiting...")
self.status.config(height=20, bd=1, relief=SUNKEN, anchor=W)
self.status.pack(side=BOTTOM, fill=X)
self.bind('<Key>', self.get_key)
機能:ちょうど例えば、Tkinterの中で、私はこのように、これを行うことができたKivyで今
def get_key(self, event):
if event.char in '':
self.code += event.char
self.status['text'] = "Searching UPC Code: " + self.code
elif self.status == self.status:
self.animate()
self.status.after(2000)
self.status['text'] = "Scanner is Waiting..."
self.get_info()
self.code = ' '
、私はclass MsgAppApp(App):
でコードを持っています
class MsgAppApp(App):
def build(self):
self.main_screen = MsgApp()
return self.main_screen
def on_start(self):
Clock.schedule_interval(self.main_screen.update_date, 1)
Clock.schedule_interval(self.main_screen.update_time, 1)
Window.bind(on_keyboard = self.main_screen.item_added)
ライン:
それは私が変更されたラベルに結合しますWindow.bind(on_keyboard = self.main_screen.item_added)
は、ラベルの変更を行いますitem_added
と呼ばれる機能を指しますが、問題は、私はスキャンしたときに、私は唯一のscancode
を取得していますということです。バーコードからの実際の数字ではありません。これらの数字を実際の数字に交換するための辞書を作ることができたので、本当に問題ありません。たとえば、コード番号「48」は数字「0」、コード「49」〜「1」などを指しています。最大の問題は、最後にscancode
が得られることです。ここに私の機能があります:
def item_added(self, instance, scancode, *largs):
scancodes = [ ]
scancodes.append(scancode)
print(scancodes)
私は今のところターミナルに印刷しています。すべての時間をポップアップする(終わり)13、バイウェイ
48
55
56
55
52
50
50
51
48
49
57
49
13
:私のような端末内のコードの行を取得します。ほとんどのバーコードには12桁しかありません。それを変数に格納すると、その変数の番号になります。変数がすべての数字を保持していないようです。 for
ループを試しましたが、これらをscancodes
を変数に格納することも、適切にリストに格納することもできません。それは90%のようですが、これらのコードをリストに保存する方法を理解していません。どんな助けもありがとう。
(1)例えば、空のリストを作成しますscancodes = [](2)スキャンコードを追加します。 scancodes.append(スキャンコード)。 – ikolim
残念ながら、同じ結果です。今私は[13]とのリストしか持っていません。それは、それが "急いでいる"ようなもので、最後のものは唯一保存されています。実際には、私はすでにこれを試してきましたが、言及するのを忘れてしまいました。 –
また、 "scancode"を "instance"に置き換え、これを13回取得します。[]同じ行です。 –