PyQt4使用小部件移动QTableWidget行

时间:2010-06-03 08:58:20

标签: python pyqt pyqt4

我的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行是空的。如果我甚至隐藏这一行,它表现得很好,虽然它不是我想要的(我有行编号,我不希望这个隐藏的行占用数字)。 但是如果我删除该行,它最初拥有的小部件就会消失。看起来他们的所有权是在第一次放置时拍摄的,并且在移动后不会更改。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我最终得到了小部件值复制。