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 }

 

posted on 2019-11-14 17:13  没头脑007  阅读(1855)  评论(0编辑  收藏  举报

导航