抱歉,我的回答有误。在 QTableWidget 中是没有 takeCellWidget() 方法的,但可以使用 cellWidget() 和 setCellWidget() 方法来获取和设置单元格中的控件。
下面是一段示例代码,演示如何交换 QTableWidget 中两个单元格中的控件:
# 获取要交换控件所在的行和列
row1, col1 = 0, 0
row2, col2 = 1, 1
# 获取需要交换的控件
widget1 = myTableWidget.cellWidget(row1, col1)
widget2 = myTableWidget.cellWidget(row2, col2)
# 将控件从表格中移除
myTableWidget.setCellWidget(row1, col1, None)
myTableWidget.setCellWidget(row2, col2, None)
# 将控件重新插入表格中
myTableWidget.setCellWidget(row1, col1, widget2)
myTableWidget.setCellWidget(row2, col2, widget1)
该代码先分别使用 cellWidget() 方法获取要交换的两个单元格中的 QWidget 对象,并将其存储在临时变量中。然后使用 setCellWiget() 方法将这些控件从相应的单元格中移除,并再次使用 setCellWiget() 方法将它们重新放回到正确的位置上。
希望这次回答能够解决您的问题。