【发布时间】:2020-08-04 20:29:59
【问题描述】:
我有一个 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_())
【问题讨论】:
-
AFAIK,一旦代码被扫描,它还应该发送一个确认/换行符(在你的情况下,它会退出单元格的编辑模式),对吧?
-
我不知道为什么它会立即关闭。在excel中,它工作正常。我扫描,它写入单元格并自动移动到下一个单元格。在 PyQt5 中,当它遇到换行符时,它只是停留在当前单元格上
-
我没有问你这个。我想知道扫描仪是否在每次扫描后发送一个类似返回的字符。
-
它编辑单元格并保留在单元格上,并以蓝色突出显示。如果我立即扫描不同的代码,它会自动编辑同一个单元格。所以就好像我按下了 Enter 键。每次扫描后它都会发送一个类似返回的字符。
标签: python pyqt pyqt5 barcode-scanner