QT实现拖拽

 Qt中自定义控件拖拽,QT实现拖拽功能--小白友好版_qt拖动控件_PPLW的博客-CSDN博客

Qt拖拽及其使用技巧_qt 拖拽_BC菜鸟的博客-CSDN博客

Qt--拖放操作_qt拖入文件并读取_Half-up的博客-CSDN博客

(1)构造函数中

this->setAcceptDrops(true);

ui->video_1->installEventFilter(this);

(2)

bool eventFilter(QObject *obj, QEvent *event)

{
    QPushButton* btn = nullptr;

    btn= qobject_cast<QPushButton*>(obj);

    //按钮禁用时不可拖拽

    if(btn->isEnabled())

    {
        QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);

        if(mouseEvent ->type()==QEvent::MouseMove&&mouseEvent->buttons()==Qt::LeftButton)

        {
            QApplication::startDragDistance();

            QDrag *drag = new QDrag(this);

            QMimeData *mimeData = new QMimeData;

            mimeData->setText(btn->objectName());

            qDebug()<<btn->objectName()<<"被拖拽了";

            //调用mimeData传递的信息

            drag->setMimeData(mimeData);

            drag->exec();
        }
    }
    return false;
}

(3)dragEnterEvent(QDragEnterEvent* event)、dropEvent(QDropEvent *event)

void AEBWidget::dragEnterEvent(QDragEnterEvent* event)
{
    event->acceptProposedAction();
}
void AEBWidget::dropEvent(QDropEvent *event)
{
           ...
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值