【问题标题】:How to use barcode scanner without pressing ENTER?如何在不按 ENTER 的情况下使用条码扫描器?
【发布时间】:2022-08-16 21:59:24
【问题描述】:

我买了一个 USB 条码扫描器,我正在开发自己的库存管理器。

它现在的工作方式是扫描条形码并在 EntryBox 中输入数字,然后我必须按一个按钮来检查库存,然后按另一个按钮来检查。我想使用 2 个条件:如果我按下签入按钮,扫描的每个代码都会添加到库存中,如果我按下签出,则每个项目都会从库存中取出。

我的 USB 条形码扫描仪在输入框中输入代码,就好像它是写在键盘上一样。它上面有一个按钮。当我按下时,它会写在盒子上。我正在考虑这样做,是在扫描仪上使用绑定事件 \"\" 或 \"\" 所以,它读取代码,将其写在盒子上并输入。

这些是我正在使用的库:

from DB_CodeReader import Bobina, session                              #This is my Database
from sqlalchemy import create_engine, select, exists, engine, join, update
import pandas as pd
from tkinter import *
import tkinter as tk
from tkinter import ttk
from datetime import date
import sys, os
from barcode import EAN13

我该怎么做?

  • 为什么不在条目上编写一个使用get() 方法的函数,然后根据条目输入编写您想要的任何行为?
  • 它将如何运作?我有一个添加到库存的 add_record 函数。所以,我会写一个新函数:``` def auto_add ( ): get(something) add_record( ) ```
  • 由于您想要 2 个具有不同行为的按钮,因此我将创建 2 个函数。类似def add_inventory(): 之类的东西在该函数中类似value = entry.get() 之类的东西,然后取那个value 变量并使用pandas 将该值写入存储库存项目的数据文件中。
  • 另一个按钮的变化是删除数据而不是添加数据。
  • 哦,这正是我正在做的。但问题是我必须实际按下创建的按钮才能添加或删除。

标签: python pandas tkinter barcode barcode-scanner


【解决方案1】:

也许这会起作用。我刚刚在工作中使用条形码扫描仪对其进行了测试,它可以满足您的需求。我刚刚添加了print 语句来证明它抓住了价值。我在'<Return>' 上使用了bind,以获取条目中输入的内容。这应该是条码扫描仪的正确事件。

import tkinter as tk


def call_back(event):
    value = entry.get()
    if len(str(value)) > 0:
        print(value)
        
root = tk.Tk()

entry = tk.Entry(root)
entry.pack()
entry.bind('<Return>', call_back)

root.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多