简单记录,对象复制


import org.springframework.beans.BeanUtils;

# bean2 是新建的空对象 BeanUtils.copyProperties(bean1, bean2);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
QTableWidget 接口 setCellWidget 添加的对象默认情况下是不支持拖动的。如果您希望支持拖动操作,可以通过重写对象的 mousePressEvent 和 mouseMoveEvent 方法来实现。具体来说,您需要在 mousePressEvent 方法中记录下鼠标按下时的位置,然后在 mouseMoveEvent 方法中计算出鼠标的偏移量,并将对象移动到新的位置。这样,当用户拖动对象时,对象就会跟随鼠标移动。 以下是一个简单的示例代码,演示了如何将 QCheckBox 对象添加到 QTableWidget 中,并支持拖动操作: ```python from PyQt5.QtWidgets import QTableWidget, QTableWidgetItem, QCheckBox from PyQt5.QtCore import Qt class DragableCheckBox(QCheckBox): def __init__(self, parent=None): super(DragableCheckBox, self).__init__(parent) self.setMouseTracking(True) self.drag_start_position = None def mousePressEvent(self, event): if event.button() == Qt.LeftButton: self.drag_start_position = event.pos() def mouseMoveEvent(self, event): if self.drag_start_position is not None: drag_distance = (event.pos() - self.drag_start_position).manhattanLength() if drag_distance > 5: mime_data = self.generateMimeData() drag = QDrag(self) drag.setMimeData(mime_data) drag.setPixmap(self.grab()) drag.exec_(Qt.CopyAction | Qt.MoveAction) def generateMimeData(self): mime_data = QMimeData() mime_data.setData('application/x-dnditemdata', b'') return mime_data class MyTableWidget(QTableWidget): def __init__(self, parent=None): super(MyTableWidget, self).__init__(parent) self.setColumnCount(1) self.setRowCount(5) for i in range(5): item = QTableWidgetItem('Item {}'.format(i+1)) self.setItem(i, 0, item) checkbox = DragableCheckBox() self.setCellWidget(i, 0, checkbox) ``` 在这个示例中,我们创建了一个名为 DragableCheckBox 的子类,它继承自 QCheckBox,并实现了 mousePressEvent 和 mouseMoveEvent 方法。我们还创建了一个名为 MyTableWidget 的子类,它继承自 QTableWidget,并在其构造函数中添加了 5 个 QCheckBox 对象。注意,在添加对象时,我们使用了 setCellWidget 方法而不是 setItem 方法。 当用户拖动 QCheckBox 对象时,它会跟随鼠标移动,直到用户松开鼠标键。如果您希望支持拖动时的复制和移动操作,可以通过设置 drag.exec_ 的参数来实现。在本例中,我们设置了 Qt.CopyAction | Qt.MoveAction,表示支持复制和移动操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

广州程序佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值