16,759
社区成员




重写拖入事件:
virtual void dragEnterEvent(QDragEnterEvent *event);
virtual void dropEvent(QDropEvent *event);
cpp:
void MainScreen::dragEnterEvent(QDragEnterEvent *event) //拖入可接受jpg、png、bmp格式文件
{
if(!event->mimeData()->urls()[0].fileName().right(3).compare("jpg")
||!event->mimeData()->urls()[0].fileName().right(3).compare("png")
||!event->mimeData()->urls()[0].fileName().right(3).compare("bmp"))
event->acceptProposedAction();
else
event->ignore();
}
void MainScreen::dropEvent(QDropEvent *event)
{
const QMimeData *qm=event->mimeData(); //获取拖入文件的完整文件名(含路径)
pixmap.load(qm->urls()[0].toLocalFile());
DScreen->showimage(Fwidth,Fheight,pixmap);
fileName.clear();
fileName.append(qm->urls()[0].toLocalFile());
qDebug()<<fileName;
int picw=pixmap.width();
int pich=pixmap.height();
float rate=float(picw)/float(pich);
qDebug()<<rate;
if(rate>(float(8)/float(6)))
{
pich=800/rate;
pixmap=pixmap.scaled(800,pich,Qt::IgnoreAspectRatio,Qt::SmoothTransformation);
qDebug()<<"800*"<<pich;
}
else
{
picw=600*rate;
pixmap=pixmap.scaled(picw,600,Qt::IgnoreAspectRatio,Qt::SmoothTransformation);
qDebug()<<pich<<"*600";
}
update();
}