簡體   English   中英

Python PyQt5-向表添加行

[英]Python PyQt5 - Add rows to table

我創建了一個包含2列和0行的表,稱為tableWidget_Events。

這是按鈕的表格和網格的樣子: 表剪

使用旋轉框中的值,我想將按鈕文本作為一行插入,因此,如果spinbox = 1並單擊“ walk”,則第一列中應創建一個行,並在第二列中創建“ 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不能接收整數作為數據,您必須將其轉換為字符串,在這種情況下, QSpinBoxvalue()方法將返回整數,這將導致問題。

另外,如果要插入,則必須指示適當的位置,在這種情況下,應為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()))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM