Python PyQt5 - 添加行到 table
Python PyQt5 - Add rows to table
我创建了一个包含 2 列和 0 行的 table,名为 tableWidget_Events。
table 和按钮网格如下所示:
使用旋转框的值,我想将按钮文本作为一行插入,所以如果旋转框 = 1 并且我单击 walk,应该会在第一列中创建一个带有 1 的行,然后在第二列。
这是我必须连接按钮的代码:
self.pushButton_SO.clicked.connect(self.add_table)
self.pushButton_Walk.clicked.connect(self.add_table)
self.pushButton_GB.clicked.connect(self.add_table)
self.pushButton_FB.clicked.connect(self.add_table)
self.pushButton_PU.clicked.connect(self.add_table)
然后函数添加行:
def add_table(self):
button = self.sender() # get button text
row = self.spinBox_AB_TBL.value() #get value from spinbox
rowPosition = self.tableWidget_Events.rowCount()
self.tableWidget_Events.insertRow(rowPosition) #insert new row
self.tableWidget_Events.setItem(row, 0, QtGui.QTableWidgetItem(self.spinBox_AB_TBL.value()))
self.tableWidget_Events.setItem(row, 1, QtGui.QTableWidgetItem(button.text()))
按钮已连接。我可以将按钮文本打印到控制台,每次单击按钮都会添加一个新行。插入文本是我挂断的问题。
谢谢。
QTableWidgetItem
无法接收整数作为数据,您必须将其转换为字符串,在您的情况下 QSpinBox
returns 整数的 value()
方法,并且这导致了问题。
此外,如果你想插入,你必须指出适当的位置,在你的情况下它应该是 rowPosition-1
而不是 row
def add_table(self):
button = self.sender() # get button text
row = self.spinBox_AB_TBL.value() #get value from spinbox
rowPosition = self.tableWidget_Events.rowCount()
self.tableWidget_Events.insertRow(rowPosition) #insert new row
self.tableWidget_Events.setItem(rowPosition-1, 0, QtGui.QTableWidgetItem(str(row)))
self.tableWidget_Events.setItem(rowPosition-1, 1, QtGui.QTableWidgetItem(button.text()))
我创建了一个包含 2 列和 0 行的 table,名为 tableWidget_Events。
table 和按钮网格如下所示:
使用旋转框的值,我想将按钮文本作为一行插入,所以如果旋转框 = 1 并且我单击 walk,应该会在第一列中创建一个带有 1 的行,然后在第二列。
这是我必须连接按钮的代码:
self.pushButton_SO.clicked.connect(self.add_table)
self.pushButton_Walk.clicked.connect(self.add_table)
self.pushButton_GB.clicked.connect(self.add_table)
self.pushButton_FB.clicked.connect(self.add_table)
self.pushButton_PU.clicked.connect(self.add_table)
然后函数添加行:
def add_table(self):
button = self.sender() # get button text
row = self.spinBox_AB_TBL.value() #get value from spinbox
rowPosition = self.tableWidget_Events.rowCount()
self.tableWidget_Events.insertRow(rowPosition) #insert new row
self.tableWidget_Events.setItem(row, 0, QtGui.QTableWidgetItem(self.spinBox_AB_TBL.value()))
self.tableWidget_Events.setItem(row, 1, QtGui.QTableWidgetItem(button.text()))
按钮已连接。我可以将按钮文本打印到控制台,每次单击按钮都会添加一个新行。插入文本是我挂断的问题。
谢谢。
QTableWidgetItem
无法接收整数作为数据,您必须将其转换为字符串,在您的情况下 QSpinBox
returns 整数的 value()
方法,并且这导致了问题。
此外,如果你想插入,你必须指出适当的位置,在你的情况下它应该是 rowPosition-1
而不是 row
def add_table(self):
button = self.sender() # get button text
row = self.spinBox_AB_TBL.value() #get value from spinbox
rowPosition = self.tableWidget_Events.rowCount()
self.tableWidget_Events.insertRow(rowPosition) #insert new row
self.tableWidget_Events.setItem(rowPosition-1, 0, QtGui.QTableWidgetItem(str(row)))
self.tableWidget_Events.setItem(rowPosition-1, 1, QtGui.QTableWidgetItem(button.text()))