⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dragicon.cpp

📁 Linux窗口程序设计,Qt4精彩实例分析,以循序渐进的方式介绍Qt4开发及其实例子,第一部分
💻 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 + -