duduqq
11th September 2008, 07:32
In my program I used QApplication::setStartDragDistance(30),QApplicatio n::setStartDragTime(1000) to changed ths drag start time and the distance,but it not work ,it also drag immediately
the code is like this,can you help me.
.H
#ifndef QDRAPBUTTON_H
#define QDRAPBUTTON_H
#include <QPushButton>
#include <QApplication>
QT_BEGIN_NAMESPACE
class QDragEnterEvent;
class QDragMoveEvent;
QT_END_NAMESPACE
class QDrapButton : public QPushButton
{
public:
QDrapButton(QWidget *parent);
protected:
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event) ;
private:
};
#endif
.CPP
#include <QtGui>
#include "QDrapButton.h"
bool m_bMove ;
int m_nMoveX ;
int m_nMoveY ;
QDrapButton::QDrapButton(QWidget *parent)
: QPushButton(parent)
{
QApplication::setStartDragDistance(30) ;
QApplication::setStartDragTime(1000) ;
m_bMove = false ;
m_nMoveX = 0 ;
m_nMoveY = 0 ;
}
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->start();
if (dropAction == Qt::MoveAction)
{
close();
update();
}
return QPushButton::mousePressEvent(event) ;
}
void QDrapButton::mouseMoveEvent(QMouseEvent *event)
{
QPoint newPoint = event->pos() ;
m_nMoveX = 0 ;
m_nMoveY = 0 ;
}
the code is like this,can you help me.
.H
#ifndef QDRAPBUTTON_H
#define QDRAPBUTTON_H
#include <QPushButton>
#include <QApplication>
QT_BEGIN_NAMESPACE
class QDragEnterEvent;
class QDragMoveEvent;
QT_END_NAMESPACE
class QDrapButton : public QPushButton
{
public:
QDrapButton(QWidget *parent);
protected:
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event) ;
private:
};
#endif
.CPP
#include <QtGui>
#include "QDrapButton.h"
bool m_bMove ;
int m_nMoveX ;
int m_nMoveY ;
QDrapButton::QDrapButton(QWidget *parent)
: QPushButton(parent)
{
QApplication::setStartDragDistance(30) ;
QApplication::setStartDragTime(1000) ;
m_bMove = false ;
m_nMoveX = 0 ;
m_nMoveY = 0 ;
}
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->start();
if (dropAction == Qt::MoveAction)
{
close();
update();
}
return QPushButton::mousePressEvent(event) ;
}
void QDrapButton::mouseMoveEvent(QMouseEvent *event)
{
QPoint newPoint = event->pos() ;
m_nMoveX = 0 ;
m_nMoveY = 0 ;
}