如何解决将值附加到现有行中
我正在尝试创建一个视频播放器,我希望能够将 mediaPlayer.position() 的数据保存在 QTableWidget 中。 视频播放器程序:
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 举报,一经查实,本站将立刻删除。