我的PyQt4应用程序中有以下方法。 r2是要移动的行数,r1是应该移动的位置。澄清一下:该表填充了cellWidgets,而不是widgetItems。
def move_row(self, r1, r2):
tt = self.tableWidget
tt.insertRow(r1)
for c in range(tt.columnCount()):
tt.setCellWidget(r1, c, tt.cellWidget(r2 + 1, c))
tt.removeRow(r2 + 1) # <--- ???
如果我注释掉最后一行,它的行为与预期的一样:新行插入位置r1,它填充了来自r2的小部件(现在是r2 + 1),而r2 + 1行是空的。如果我甚至隐藏这一行,它表现得很好,虽然它不是我想要的(我有行编号,我不希望这个隐藏的行占用数字)。 但是如果我删除该行,它最初拥有的小部件就会消失。看起来他们的所有权是在第一次放置时拍摄的,并且在移动后不会更改。
有什么想法吗?
答案 0 :(得分:1)
我最终得到了小部件值复制。