PyQt4 使用小部件移动 QTableWidget 行
我的 PyQt4 应用程序中有以下方法。 r2是要移动的行数,r1是应该移动的位置。澄清一下:表格中填充的是 cellWidget,而不是 widgetItem。
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 行为空。如果我什至隐藏这一行,它的表现很好,尽管这不是我想要的(我对行进行了编号,并且我不希望这个隐藏的行占据该编号)。 但如果我删除该行,它最初拥有的小部件就会消失。看起来他们的所有权是在第一次放置时获得的,并且在移动后不会改变。
有什么想法吗?
I have the following method in my PyQt4 app. r2 is the number of row to move, and r1 is the position where it should be moved. To clarify: the table is filled with cellWidgets, not 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) # <--- ???
If I comment out the last line, it behaves as expected: the new row is inserted at position r1, it is filled with widgets from r2 (now it's r2+1), and the r2+1 row is empty. If I even hide this row, it behaves well, though it is not what I want (I have the rows numbered, and I don't want this hidden row to occupy the number).
But if I remove the row, the widgets initially owned by it disappear. Looks like their ownership is taken on first placement, and is not changed after the move.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我最终完成了小部件值复制。
I finally ended up with widgets values copying.