У меня есть USB-сканер штрих-кода, который я подключаю к своему компьютеру. Каждый раз, когда он сканирует штрих-код, он вводит данные в компьютер, как клавиатура. Моей целью было ввести данные в виджет PyQT5 Table.
Я создал таблицу ниже и просто просматриваю элементы в ней. Проблема в том, что когда я сканирую элемент, он редактирует первую ячейку, но курсор не перемещается автоматически к следующей строке, поэтому я могу сканировать новый элемент в таблице. Мне нужно щелкнуть по второй ячейке, а затем отсканировать элемент. Затем щелкните третью ячейку и отсканируйте элемент и т. Д.
Мне было интересно, как я могу автоматизировать его, чтобы после сканирования элемента в первую ячейку он автоматически переместился в следующую ячейку и ждал ввод со сканера?
import sys
from PyQt5.QtWidgets import *
#Main Window
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'Specimen Dashboard'
self.setWindowTitle(self.title)
self.tableWidget = QTableWidget()
self.createTable()
self.tableWidget.itemChanged.connect(self.go_to_next_row)
self.layout = QVBoxLayout()
self.layout.addWidget(self.tableWidget)
self.setLayout(self.layout)
self.show()
def go_to_next_row(self):
#Not working
#Trying to see if I can automatically move to next cell, but editing it
self.tableWidget.setItem(1,0, QTableWidgetItem("Name"))
#Create table
def createTable(self):
self.tableWidget.setRowCount(4)
self.tableWidget.setColumnCount(2)
self.tableWidget.horizontalHeader().setStretchLastSection(True)
self.tableWidget.horizontalHeader().setSectionResizeMode(
QHeaderView.Stretch)
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())