我正试着捕捉条形码扫描。例如,在Tkinter,我可以这样做:
标签:
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)
功能:
^{pr2}$现在在Kivy中,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)
我现在正在打印到终端。我在终端上看到一行代码,比如:
48
55
56
55
52
50
50
51
48
49
57
49
13
顺便说一句,13(在结尾处)总是会出现。大多数条形码只有12位。如果我把它存储在变量中,那就是变量中的数字,13。就好像变量没有保存所有的数字。我尝试了一个for
循环,但无法将这些scancodes
存储在一个变量中,或者更恰当地存储在一个列表中。大概有90%是这样,但不知道如何将这些代码存储在列表中。任何帮助都将不胜感激。在
通过将“scancodes=[]”放在方法中,每次调用方法item_added时都会创建和销毁列表。在
使用Kivy ListProperty如下:
代码段
相关问题 更多 >
编程相关推荐