• 4208阅读
  • 1回复

拖拽时设置setStartDragTime()的问题 [复制链接]

上一主题 下一主题
离线duduqq
 

只看楼主 倒序阅读 楼主  发表于: 2008-09-10
— 本帖被 XChinux 执行加亮操作(2008-09-14) —
我在程序中设置了拖拽生效的时间和距离,但是没有反应,而且好像也不是默认的500毫秒和4个象素,
每当我鼠标在按钮是按下拖拽就马上生效了,请教要如何生置才能让拖拽的时间和距离改变。
代码如下:
头文件QDrapButton.h
#ifndef QDRAPBUTTON_H
#define QDRAPBUTTON_H

#include <QPushButton>

QT_BEGIN_NAMESPACE
class QDragEnterEvent;
class QDragMoveEvent;
QT_END_NAMESPACE

class QDrapButton : public QPushButton
{
public:
    QDrapButton(QWidget *parent);
protected:
    void mousePressEvent(QMouseEvent *event);

private:
};

#endif

CPP文件QDrapButton.cpp
#include <QtGui>

#include "QDrapButton.h"

QDrapButton::QDrapButton(QWidget *parent)
    : QPushButton(parent)
{
    QApplication::setStartDragDistance(30) ;
    QApplication::setStartDragTime(1000) ;
}

void QDrapButton::mousePressEvent(QMouseEvent *event)
{
    QPoint hotSpot = event->pos();

    QMimeData *mimeData = new QMimeData;
    mimeData->setText(objectName());
    mimeData->setData("application/x-hotspot",
                      QByteArray::number(hotSpot.x())
                      + " " + QByteArray::number(hotSpot.y()));
     mimeData->setImageData(icon()) ;
    QPixmap pixmap(size());
    render(&pixmap);

    QDrag *drag = new QDrag(this);
    drag->setMimeData(mimeData);
    drag->setPixmap(pixmap);
    drag->setHotSpot(hotSpot);

    Qt::DropAction dropAction = drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::CopyAction);

    if (dropAction == Qt::MoveAction)
    {
        close();
        update();
    }
}
离线duduqq

只看该作者 1楼 发表于: 2008-09-11
都没人做过拖拽吗
快速回复
限100 字节
 
上一个 下一个