将值附加到现有行

Append value into an existing row

我正在尝试创建一个视频播放器,我希望能够保存 mediaPlayer.position() 在 QTableWidget 中。 视频播放器程序:

但是,我 stuck.I 尝试在空行中插入值,但没有显示任何内容。

        def addSub(self):
        row = self.table.rowCount()
        self.table.insertRow(row)

这就是我创建新行的方式。 我希望当我按下“Ctrl+F”或“Ctrl+T”等快捷方式(预先设置)时,数据会像这样进入这个空行

    def startHere(self):
        newStart = self.mediaPlayer.position()
        row = self.table.rowCount()
        self.table.setItem(row, 0, QTableWidgetItem(str(newStart)))
    
    def endHere(self):
        newEnd = self.mediaPlayer.position()
        row = self.table.rowCount()
        self.table.setItem(row, 1, QTableWidgetItem(str(newEnd)))

您正在尝试为不存在的行设置项目。

假设你有一个空的 table,你 运行 addSub 然后 startHere:

    def addSub(self):
        row = self.table.rowCount()
        # row is 0
        self.table.insertRow(row)
        # inserts a row at index 0, as indexes are always 0-based

    def startHere(self):
        newStart = self.mediaPlayer.position()
        row = self.table.rowCount()
        # you just created a row, so the line above returns 1
        self.table.setItem(row, 0, QTableWidgetItem(str(newStart)))
        # row 1 does not exist, so setItem is ignored

解决方法是在setItem上使用前先减去1:

    def startHere(self):
        newStart = self.mediaPlayer.position()
        row = self.table.rowCount() - 1
                                   ^^^^
        self.table.setItem(row, 0, QTableWidgetItem(str(newStart)))