将值附加到现有行
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)))
我正在尝试创建一个视频播放器,我希望能够保存 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)))