微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将值附加到现有行中

如何解决将值附加到现有行中

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

Video Player Program

但是,我卡住了。我尝试在空行中插入值,但没有显示任何内容

        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,QTableWidgetItem(str(newStart)))
    
    def endHere(self):
        newEnd = self.mediaPlayer.position()
        row = self.table.rowCount()
        self.table.setItem(row,1,QTableWidgetItem(str(newEnd)))

解决方法

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

假设您有一个空表,您运行 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,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,QTableWidgetItem(str(newStart)))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。