Qt主窗口实现拖拽文件,显示到文本框


1 MainWindow::MainWindow(QWidget *parent) :
2     QMainWindow(parent),
3     ui(new Ui::MainWindow)
4 {
5     ui->setupUi(this);
6     this->setAcceptDrops(true);//设置接受拖拽
7 }

重写

void dragEnterEvent(QDragEnterEvent* event);//拖动进入事件
void dropEvent(QDropEvent* event);//放下事件

 

 1 void MainWindow::dragEnterEvent(QDragEnterEvent* event)
 2 {
 3     if(event->mimeData()->hasUrls())
 4     {
 5         event->acceptProposedAction();
 6     }
 7     else
 8     {
 9         event->ignore();
10     }
11 }
12 
13 void MainWindow::dropEvent(QDropEvent* event)
14 {
15     const QMimeData* mimeData = event->mimeData();
16     if(mimeData->hasUrls())
17     {
18         QList<QUrl>urlList = mimeData->urls();
19         QString fileName = urlList.at(0).toLocalFile();
20         if(!fileName.isEmpty())
21         {
22             QFile file(fileName);
23             if(!file.open(QIODevice::ReadOnly))return;
24             QTextStream in(&file);
25             ui->textEdit->setText(in.readAll());
26         }
27     }
28 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM