Python PyQt5-向表中添加行

Python PyQt5-向表中添加行,python,pyqt5,qtablewidget,Python,Pyqt5,Qtablewidget,我创建了一个包含2列和0行的表,称为tableWidget\u事件 下面是表格和按钮网格的外观: 使用spinbox中的值,我希望将按钮文本作为一行插入,因此如果spinbox=1并单击“漫游”,则应在第一列中创建一行,在第二列中创建一行,第一列中使用1,第二列中使用walk 以下是连接按钮的代码: self.pushButton_SO.clicked.connect(self.add_table) self.pushButton_Walk.clicked.connect(se

我创建了一个包含2列和0行的表,称为tableWidget\u事件

下面是表格和按钮网格的外观:

使用spinbox中的值,我希望将按钮文本作为一行插入,因此如果spinbox=1并单击“漫游”,则应在第一列中创建一行,在第二列中创建一行,第一列中使用1,第二列中使用walk

以下是连接按钮的代码:

    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
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()))

QTableWidgetItem
无法接收整数作为数据,必须将其转换为字符串,在您的情况下,
QSpinBox
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()))