Я создаю сканер QR-кода, который нарезает отсканированный код сразу после сканирования его в запись виджета - таким образом, чтобы для продолжения операции не требовалось нажатия кнопки или нажатия клавиатуры.Все, что есть у пользователя, - это пистолет сканера штрих-кода.
Пример ввода отсканированного кода выглядит следующим образом и всегда структурирован аналогично (6 подстрок по 39 символов):
AAAAA-BBBBB-CCC-DDDDDD-EEEEEE-FFFFFFFFFF
Я хочу, чтобы мой код:
1) Создать графический интерфейс Tkinter с вводом для отсканированного кода и шестью дополнительными полями ввода (см. Рисунок, ссылка ниже)
2) Установите фокус курсора в записи «Отсканированный код»
3) Проверьте, пуста ли запись виджета для «Отсканированного кода»
4) Если false, отрежьте отсканированную строку вподстроки делятся на символ «-», то есть когда он достигает «-».Таким образом, я бы хотел, чтобы он автоматически сортировался в:
AAAAA
BBBBB
CCC и т. Д. В соответствующем поле.
Пока чтоМне удалось перейти к шагу 1) и 2) - см. Рисунок и прилагаемый код.
from Tkinter import *
root = Tk()
root.title('Scanner')
# create the top container
top_frame = Frame(root)
top_frame.pack( side = TOP )
scan_pcb=Label(top_frame,text='SCANNED CODE: ')
scan_pcb.grid(row=0,column=0)
pcb_entry=Entry(top_frame,background='white')
pcb_entry.grid(row=0,column=1)
pcb_entry.focus_set()
# create the left container
left_frame = Frame(root)
left_frame.pack( side = LEFT )
A_label=Label(left_frame,text='A')
A_label.grid(row=0,column=0)
A_entry=Entry(left_frame,background='white')
A_entry.grid(row=0,column=1)
B_label=Label(left_frame,text='B')
B_label.grid(row=1,column=0)
B_entry=Entry(left_frame,background='white')
B_entry.grid(row=1,column=1)
C_label=Label(left_frame,text='C')
C_label.grid(row=2,column=0)
C_entry=Entry(left_frame,background='white')
C_entry.grid(row=2,column=1)
# create the right container
right_frame = Frame(root)
right_frame.pack( side = RIGHT )
D_label=Label(right_frame,text='D')
D_label.grid(row=0,column=2)
D_entry=Entry(right_frame,background='white')
D_entry.grid(row=0,column=3)
E_label=Label(right_frame,text='E')
E_label.grid(row=1,column=2)
E_entry=Entry(right_frame,background='white')
E_entry.grid(row=1,column=3)
E_label=Label(right_frame,text='F')
E_label.grid(row=2,column=2)
E_entry=Entry(right_frame,background='white')
E_entry.grid(row=2,column=3)
root.mainloop()
Изображение графического интерфейса, который я сделал до сих пор
Однако я борюсь с шагами 3) и 4).Я провел некоторое исследование, и я подумывал, используя
if len(entry_object.get())
из этой темы, как-то, может быть, как:
if len(pcb_entry.get()) != 0
#do something
Часть #do something
- это то, что яЯ борюсь с.Я также подумал, возможно, сделать его текстовым, чтобы потом его можно было сохранить и потом работать с отсканированным кодом.(?)
В общем, я просто не могу заставить его работать должным образом, и мне было интересно, есть ли кто-то, кто хочет мне помочь?
К вашему сведению, я все еще новичок в программировании на Python, так что очень жаль, если я повторяю вопрос снова.
Большое спасибо.Цени это.