📄 dragicon.cpp
字号:
#include "dragicon.h"
DragIcon::DragIcon(QPixmap pix, QWidget *parent)
: QLabel(parent)
{
setScaledContents(true);
setPixmap(pix);
}
void DragIcon::mousePressEvent(QMouseEvent * e)
{
if(e->button() == Qt::LeftButton)
startPos = e->pos();
}
void DragIcon::mouseMoveEvent(QMouseEvent * e)
{
if (!e->buttons()&Qt::LeftButton)
return;
if ((e->pos() - startPos).manhattanLength() < QApplication::startDragDistance())
return;
QPixmap pix = *pixmap();
QByteArray data;
QDataStream stream(&data,QIODevice::WriteOnly);
stream << pix << QPoint(e->pos()-rect().topLeft());
QMimeData *mimeData = new QMimeData;
mimeData->setData("Drag-Icon",data);
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);
drag->setHotSpot(QPoint(e->pos() - rect().topLeft()));
drag->setPixmap(pix);
hide();
Qt::DropAction dropAction = drag->start(Qt::CopyAction | Qt::MoveAction);
if (dropAction == Qt::MoveAction)
close();
else
show();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -