QT学习---使用拖拽打开文本文件

#include "add.h"
#include 
#include 
#include 
#include 
#include 
#include 
#pragma execution_character_set("utf-8");

add::add(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	setAcceptDrops(true);
}

void add::dragEnterEvent(QDragEnterEvent * event) //拖动进入事件
{
	if (event->mimeData()->hasUrls())  //数据中心是否包含URL
	{
		event->acceptProposedAction(); //如果是,接收
	}
	else
	{
		event->ignore();               //否则忽略
	}
	
}

void add::dropEvent(QDropEvent * event)                 //放下事件
{
	const QMimeData * mimeData = event->mimeData();     //获取MIME数据
	if (mimeData->hasUrls())                            //如果数据中有URL
	{
		QList  urlList = mimeData->urls();          //获取url列表
		QString filename = urlList.at(0).toLocalFile();  //第一个url表示为本地文件路径
		if (!filename.isEmpty())
		{
			QFile file(filename);                       //建立QFile对象,只读方式打开
			if (!file.open(QIODevice::ReadOnly)) return;
			QTextStream in(&file);                      //建立文本流对象
			ui.textEdit->setText(in.readAll());           //将文件中所有内容读入编译器
		}
	}
}

 

你可能感兴趣的:(c++,QT学习)