QT学习_QT实现拖拽功能

Posted Leslie X徐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT学习_QT实现拖拽功能相关的知识,希望对你有一定的参考价值。

QT实现拖拽功能

重写两个虚函数

    void dragEnterEvent(QDragEnterEvent *event);
    void dropEvent(QDropEvent *event);

例子

void MainWindow::dragEnterEvent(QDragEnterEvent *event)
{
    if(event->mimeData()->hasUrls()){
        //若是文件路径则允许拖拽
        event->acceptProposedAction();
    }
}

void MainWindow::dropEvent(QDropEvent *event)
{
    QList<QUrl> urls = event->mimeData()->urls();
    if(urls.count()>0){
       QString fileName = urls.first().toLocalFile();
       handleLogFile(fileName);
    }
}

拖拽属性的开启和关闭

可以设置属性来开启关闭,也可以使用函数setAcceptDrops设置

    //关闭文本框的拖拽属性,开启窗口的拖拽属性
    ui->plainTextEdit->setAttribute(Qt::WA_AcceptDrops,false);
    this->setAcceptDrops(true);

以上是关于QT学习_QT实现拖拽功能的主要内容,如果未能解决你的问题,请参考以下文章

QT中如何实现一个TreeWidget的拖拽功能

QT学习_录音功能

QT学习_log分析器程序

Qt学习: QPixmap实现的截屏程序代码示例

Qt商业级无边框窗口实现源码(windowsmsvc)

Qt实现不同Treewidget之间拖拽