mirror of https://gitee.com/cxasm/notepad--.git
53 lines
817 B
C++
Executable File
53 lines
817 B
C++
Executable File
#include "draglineedit.h"
|
|
|
|
DragLineEdit::DragLineEdit(QWidget *parent)
|
|
: QLineEdit(parent)
|
|
{
|
|
setAcceptDrops(true);
|
|
}
|
|
|
|
DragLineEdit::~DragLineEdit()
|
|
{
|
|
}
|
|
|
|
void DragLineEdit::dragEnterEvent(QDragEnterEvent* event)
|
|
{
|
|
if (event->mimeData()->hasFormat("text/uri-list")) //只能打开文本文件
|
|
{
|
|
event->accept(); //可以在这个窗口部件上拖放对象
|
|
}
|
|
else
|
|
{
|
|
event->ignore();
|
|
}
|
|
}
|
|
|
|
void DragLineEdit::dragMoveEvent(QDragMoveEvent* )
|
|
{
|
|
}
|
|
|
|
void DragLineEdit::dropEvent(QDropEvent* e)
|
|
{
|
|
QList<QUrl> urls = e->mimeData()->urls();
|
|
if (urls.isEmpty())
|
|
return;
|
|
|
|
QString fileName = urls.first().toLocalFile();
|
|
|
|
if (fileName.isEmpty())
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (!QFile::exists(fileName))
|
|
{
|
|
return;
|
|
}
|
|
|
|
this->setText(fileName);
|
|
|
|
e->accept();
|
|
|
|
emit this->returnPressed();
|
|
}
|