#include <QtGui>QTextStream cout(stdout);class MyWidget : public QWidget { void mouseMoveEvent(QMouseEvent* e) { cout << "move pos=" << e->pos().x() << "," << e->pos().y() << endl; if(e->pos().y() > 200) { QCursor::setPos(mapToGlobal(QPoint(e->pos().x(), 200))); } }};int main(int argc, char* argv[]) { QApplication app(argc, argv); MyWidget w; w.setMouseTracking(true); w.show(); return app.exec();}
void mouseMoveEvent(QMouseEvent* e) { QPoint pt = mapToGlobal(e->pos()); if(pt.y() > 200) QCursor::setPos(pt.x(), 200);}
if(e->pos().y() > 200) { QCursor::setPos(mapToGlobal(QPoint(e->pos().x(), 200))); }
if(e->globalPos().y() > mapToGlobal(QPoint(0, 200)).y()) { QCursor::setPos(e->globalX(), 200);}
void mouseMoveEvent( QMouseEvent * e ){ QPoint mypos = qBound( myrect.topLeft(), e->pos(), myrect.bottomRight() ); // і далі працюєш так, ніби курсор миші знаходиться у [b]mypos[/b]}
QPoint qBound( const QPoint & min, const QPoint & val, const QPoint & max ){ return QPoint( qBound( min.x(), val.x(), max.x() ), qBound( min.y(), val.y(), max.y() ) );}