您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ startDrag函数代码示例

51自学网 2021-06-03 08:21:35
  C++
这篇教程C++ startDrag函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中startDrag函数的典型用法代码示例。如果您正苦于以下问题:C++ startDrag函数的具体用法?C++ startDrag怎么用?C++ startDrag使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了startDrag函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: startDrag

bool SlideNavmesh::mouseDown(const float x, const float y){	if (!m_expanded)	{		if (hitCorner(x,y))		{			startDrag(1, x,y, m_pos);			return true;		}	}	else	{		int bidx = hitButtons(x-m_pos[0],y-m_pos[1]);		if (bidx != -1)		{			return true;		}		else if (hitCorner(x,y))		{			startDrag(1, x,y, m_pos);			return true;		}		else if (hitArea(x,y))		{			const float lx = x - (m_pos[0]+PADDING_SIZE);			const float ly = y - (m_pos[1]+PADDING_SIZE);			float pos[2] = {lx,ly};			float nearest[2] = {lx,ly};			if (m_scene.nav)				navmeshFindNearestTri(m_scene.nav, pos, nearest);						if (SDL_GetModState() & KMOD_SHIFT)			{				agentMoveAndAdjustCorridor(&m_scene.agents[0], nearest, m_scene.nav);				vcpy(m_scene.agents[0].oldpos, m_scene.agents[0].pos);				vset(m_scene.agents[0].corner, FLT_MAX,FLT_MAX);			}			else			{				vcpy(m_scene.agents[0].target, nearest);				vcpy(m_scene.agents[0].oldpos, m_scene.agents[0].pos);				agentFindPath(&m_scene.agents[0], m_scene.nav);				vset(m_scene.agents[0].corner, FLT_MAX,FLT_MAX);			}			return true;		}	}	return false;}
开发者ID:Efflam,项目名称:Plouf,代码行数:51,


示例2: startDrag

void Scene::mouseMoveEvent(QGraphicsSceneMouseEvent *event){    if(itemAt(event->scenePos(), QTransform()))        startDrag(event->scenePos());    QGraphicsScene::mouseMoveEvent(event);}
开发者ID:medegor44,项目名称:Backpack,代码行数:7,


示例3: itemAt

void CardsList::mouseMoveEvent(QMouseEvent *event){    int index = itemAt(event->pos());    if(index != -1)    {        quint32 id = ls[index];        if(currentCardId != id)        {            currentCardId = id;            tower->changeCurrentId(ls[index]);        }        needRefreshId = false;    }    if(event->buttons() & Qt::LeftButton)    {        int dist = (event->pos() - startPos).manhattanLength();        if(dist >= QApplication::startDragDistance() && index != -1)        {            current = -1;            startDrag(index);        }    }    else if(current != index)    {        current = index;        update();    }    QWidget::mouseMoveEvent(event);}
开发者ID:yjqww6,项目名称:deckmanager,代码行数:30,


示例4: startDrag

void ComponentSceneItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event){     if (QLineF(event->screenPos(), event->buttonDownScreenPos(Qt::LeftButton)).length() >= QApplication::startDragDistance()) {         startDrag();     }     QGraphicsObject::mouseMoveEvent(event);}
开发者ID:timbz,项目名称:Hipnos,代码行数:7,


示例5: point

/** * Tablet events are handled here * @param event event info */bool CanvasView::viewportEvent(QEvent *event){	if(event->type() == QEvent::TabletMove) {		// Stylus moved		QTabletEvent *tabev = static_cast<QTabletEvent*>(event);		tabev->accept();		const dpcore::Point point(mapToScene(tabev->pos()), tabev->pressure());		if(!_prevpoint.intSame(point)) {			if(_isdragging)				moveDrag(tabev->x(), tabev->y());			else {				if(_pendown) {					if(point.pressure()==0) {						// Missed a release event						_pendown = NOTDOWN;						onPenUp();					} else {						onPenMove(point);					}				}				updateOutline(point);			}			_prevpoint = point;		}	} else if(event->type() == QEvent::TabletPress) {		// Stylus touches the tablet surface		QTabletEvent *tabev = static_cast<QTabletEvent*>(event);		tabev->accept();		if(_dragbtndown) {			startDrag(tabev->x(), tabev->y(), _dragbtndown);		} else {			if(_pendown == NOTDOWN) {				const dpcore::Point point(mapToScene(tabev->pos()), tabev->pressure());				_pendown = TABLETDOWN;				onPenDown(point, false);				updateOutline(point);				_prevpoint = point;			}		}	} else if(event->type() == QEvent::TabletRelease) {		// Stylus lifted		QTabletEvent *tabev = static_cast<QTabletEvent*>(event);		tabev->accept();		if(_isdragging) {			stopDrag();		} else if(_pendown == TABLETDOWN) {			dpcore::Point point(mapToScene(tabev->pos()), 0);			updateOutline(point);			_prevpoint = point;			_pendown = NOTDOWN;			onPenUp();		}	} else {		return QGraphicsView::viewportEvent(event);	}		return true;}
开发者ID:hexaditidom,项目名称:Drawpile,代码行数:64,


示例6: switch

    void Draggable::onEvent(Event* event)    {        //if (event->currentTarget.get() != _actor)        //  return;        TouchEvent* te = safeCast<TouchEvent*>(event);        switch (te->type)        {            case TouchEvent::TOUCH_DOWN:            {                startDrag(te->localPosition);            }            break;            case TouchEvent::TOUCH_UP:            {                _pressed = false;                _actor->_getStage()->removeEventListeners(this);                if (getTimeMS() - _startTm < 2)                {                    _actor->setPosition(_clientPos);                }            }            break;            case TouchEvent::MOVE:            {                onMove(te->localPosition);            }            break;        }    }
开发者ID:ivlevAstef,项目名称:PrototypeCarGame,代码行数:31,


示例7: cursorMan

void PoolTreeView::mouseMoveEvent(QMouseEvent* _event) {  CursorManager cursorMan(this, _event, state() == PoolTreeView::DraggingState);  if (!(_event->buttons() & Qt::LeftButton)) {    WalletTreeView::mouseMoveEvent(_event);    QModelIndex index = indexAt(_event->pos());    if (index.isValid() && index.column() != MinerModel::COLUMN_REMOVE) {      selectionModel()->setCurrentIndex(index, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);    } else {      selectionModel()->clearSelection();    }    return;  }  if (!m_pressedIndex.isValid()) {    WalletTreeView::mouseMoveEvent(_event);    return;  }  if ((_event->pos() - m_pressedPosition).manhattanLength() < QApplication::startDragDistance()) {    WalletTreeView::mouseMoveEvent(_event);    return;  }  if (m_pressedTime.msecsTo(QDateTime::currentDateTime()) < QApplication::startDragTime()) {    WalletTreeView::mouseMoveEvent(_event);    return;  }  startDrag(model()->supportedDragActions());}
开发者ID:BitcoinNero,项目名称:Archives2,代码行数:31,


示例8: QWidget

SourceWidget::SourceWidget(QWidget *parent)    : QWidget(parent){    QFile imageFile(":/images/example.svg");    imageFile.open(QIODevice::ReadOnly);    imageData = imageFile.readAll();    imageFile.close();    QScrollArea *imageArea = new QScrollArea;    imageLabel = new QSvgWidget;    imageLabel->renderer()->load(imageData);    imageArea->setWidget(imageLabel);    //imageLabel->setMinimumSize(imageLabel->renderer()->viewBox().size());    QLabel *instructTopLabel = new QLabel(tr("This is an SVG drawing:"));    QLabel *instructBottomLabel = new QLabel(        tr("Drag the icon to copy the drawing as a PNG file:"));    instructBottomLabel->setWordWrap(true);    QPushButton *dragIcon = new QPushButton(tr("Export"));    dragIcon->setIcon(QIcon(":/images/drag.png"));    connect(dragIcon, SIGNAL(pressed()), this, SLOT(startDrag()));    QGridLayout *layout = new QGridLayout;    layout->addWidget(instructTopLabel, 0, 0, 1, 2);    layout->addWidget(imageArea, 1, 0, 2, 2);    layout->addWidget(instructBottomLabel, 3, 0);    layout->addWidget(dragIcon, 3, 1);    setLayout(layout);    setWindowTitle(tr("Delayed Encoding"));}
开发者ID:MarianMMX,项目名称:MarianMMX,代码行数:31,


示例9: point

/** * Tablet events are handled here * @param event event info */bool EditorView::viewportEvent(QEvent *event){    if(event->type() == QEvent::TabletMove) {        // Stylus moved        QTabletEvent *tabev = static_cast<QTabletEvent*>(event);        tabev->accept();        const dpcore::Point point(mapToScene(tabev->pos()), tabev->pressure());        if(!prevpoint_.intSame(point)) {            if(isdragging_)                moveDrag(tabev->x(), tabev->y());            else {                if(pendown_) {                    if(point.pressure()==0) {                        // Missed a release event                        pendown_ = NOTDOWN;                        emit penUp();                    } else {                        emit penMove(point);                    }                }                updateOutline(point);            }            prevpoint_ = point;        }    } else if(event->type() == QEvent::TabletPress) {        // Stylus touches the tablet surface        QTabletEvent *tabev = static_cast<QTabletEvent*>(event);        tabev->accept();        if(dragbtndown_) {            startDrag(tabev->x(), tabev->y(), dragbtndown_);        } else {            if(pendown_ == NOTDOWN) {                const dpcore::Point point(mapToScene(tabev->pos()), tabev->pressure());                pendown_ = TABLETDOWN;                emit penDown(point);                updateOutline(point);                prevpoint_ = point;            }        }    } else if(event->type() == QEvent::TabletRelease) {        // Stylus lifted        QTabletEvent *tabev = static_cast<QTabletEvent*>(event);        tabev->accept();        if(isdragging_) {            stopDrag();        } else if(pendown_ == TABLETDOWN) {            dpcore::Point point(mapToScene(tabev->pos()), 0);            updateOutline(point);            prevpoint_ = point;            pendown_ = NOTDOWN;            emit penUp();        }    } else {        return QGraphicsView::viewportEvent(event);    }    return true;}
开发者ID:Galatamon,项目名称:Drawpile,代码行数:64,


示例10: startDrag

void CSVWorld::Table::mouseMoveEvent (QMouseEvent* event){    if (event->buttons() & Qt::LeftButton)    {        startDrag(*this);    }}
开发者ID:Lyill,项目名称:openmw,代码行数:7,


示例11: if

//! Handle mouse press eventsvoid CanvasView::mousePressEvent(QMouseEvent *event){	/** @todo why do we sometimes get mouse events for tablet strokes? */	if(_pendown != NOTDOWN)		return;	if(event->button() == Qt::MidButton || _dragbtndown) {		ViewTransform mode;		if(_dragbtndown == DRAG_NOTRANSFORM) {			if((event->modifiers() & Qt::ControlModifier))				mode = DRAG_ZOOM;			else if((event->modifiers() & Qt::ShiftModifier))				mode = DRAG_QUICKADJUST1;			else				mode = DRAG_TRANSLATE;		} else			mode = _dragbtndown;		startDrag(event->x(), event->y(), mode);	} else if((event->button() == Qt::LeftButton || event->button() == Qt::RightButton) && _isdragging==DRAG_NOTRANSFORM) {		_pendown = MOUSEDOWN;		_pointerdistance = 0;		_pointervelocity = 0;		_specialpenmode = event->modifiers() & Qt::ControlModifier;		onPenDown(mapToScene(event->pos(), mapPressure(1.0, false)), event->button() == Qt::RightButton);	}}
开发者ID:horkana,项目名称:Drawpile,代码行数:28,


示例12: drawRubberBands

void CardView::contentsMouseMoveEvent( QMouseEvent *e ){  // resizing  if ( d->mResizeAnchor ) {    int x = e->x();    if ( x != d->mRubberBandAnchor )      drawRubberBands( x );      return;  }  if ( d->mLastClickOnItem && (e->buttons() & Qt::LeftButton) &&       ((e->pos() - d->mLastClickPos).manhattanLength() > 4)) {    startDrag();    return;  }  d->mTimer->start( 500 );  // see if we are over a separator  // only if we actually have them painted?  if ( d->mDrawSeparators  ) {    int colcontentw = d->mItemWidth + (2 * d->mItemSpacing);    int colw = colcontentw + d->mSepWidth;    int m = e->x() % colw;    if ( m >= colcontentw && m > 0 ) {      setCursor( Qt::SplitHCursor );      d->mOnSeparator = true;    } else {      setCursor( Qt::ArrowCursor );      d->mOnSeparator = false;    }  }}
开发者ID:akhuettel,项目名称:kdepim-noakonadi,代码行数:34,


示例13: startDrag

 /// Mouse Move Event and handler for dragging to ScreenSetup widget void Tuning::mouseMoveEvent(QMouseEvent *event) {   // Handle drag to ScreenWidget   if (event->button() == Qt::LeftButton)   {     startDrag();   } }
开发者ID:cr8tr,项目名称:omnidome,代码行数:9,


示例14: startDrag

void ImageButton::mouseMoveEvent( QMouseEvent *event ){    if ( (event->buttons() & Qt::LeftButton) &&            (event->pos() - mDragStartPos).manhattanLength() >            KGlobalSettings::dndEventDelay() ) {        startDrag();    }}
开发者ID:akhuettel,项目名称:kdepim-noakonadi,代码行数:8,


示例15: gestureEvent

/** * Tablet events are handled here * @param event event info */bool CanvasView::viewportEvent(QEvent *event){	if(event->type() == QEvent::Gesture) {		gestureEvent(static_cast<QGestureEvent*>(event));	} else if(event->type() == QEvent::TabletMove && _enableTabletEvents) {		// Stylus moved		QTabletEvent *tabev = static_cast<QTabletEvent*>(event);		tabev->accept();		paintcore::Point point = mapToScene(tabev->posF(), tabev->pressure());		updateOutline(point);		if(!_prevpoint.intSame(point)) {			if(_isdragging)				moveDrag(tabev->x(), tabev->y());			else {				if(_pendown) {					_pointervelocity = point.distance(_prevpoint);					_pointerdistance += _pointervelocity;					point.setPressure(mapPressure(point.pressure(), true));					onPenMove(point, false, tabev->modifiers() & Qt::ShiftModifier, tabev->modifiers() & Qt::AltModifier);				}			}			_prevpoint = point;		}	} else if(event->type() == QEvent::TabletPress && _enableTabletEvents) {		// Stylus touches the tablet surface		QTabletEvent *tabev = static_cast<QTabletEvent*>(event);		tabev->accept();		if(_dragbtndown) {			startDrag(tabev->x(), tabev->y(), _dragbtndown);		} else {			if(_pendown == NOTDOWN) {				_pointerdistance = 0;				_pointervelocity = 0;				const paintcore::Point point = mapToScene(tabev->posF(), mapPressure(tabev->pressure(), true));				_specialpenmode = tabev->modifiers() & Qt::ControlModifier; /* note: modifiers doesn't seem to work, at least on Qt 5.2.0 */				_pendown = TABLETDOWN;				onPenDown(point, false);				updateOutline(point);				_prevpoint = point;			}		}	} else if(event->type() == QEvent::TabletRelease && _enableTabletEvents) {		// Stylus lifted		// Ignore this event: a mouseRelease event is also generated, so we let		// the mouseRleaseEvent function handle this.	} else {		return QGraphicsView::viewportEvent(event);	}		return true;}
开发者ID:horkana,项目名称:Drawpile,代码行数:62,


示例16: startDrag

void BookmarksListBox::contentsMouseMoveEvent(QMouseEvent *event){    if (event->state() & LeftButton) {        int distance = (event->pos() - dragPos).manhattanLength();        if (distance > QApplication::startDragDistance())            startDrag();    }    QListBox::contentsMouseMoveEvent(event); }
开发者ID:serghei,项目名称:kde3-apps-dolphin,代码行数:9,


示例17: startDrag

void ProjectListWidget::mouseMoveEvent(QMouseEvent *event){    if (event->buttons() & Qt::LeftButton) {        int distance = (event->pos() - startPos).manhattanLength();        if (distance >= QApplication::startDragDistance())            startDrag();    }    QListWidget::mouseMoveEvent(event);}
开发者ID:evade55,项目名称:station-meteo-test,代码行数:9,


示例18: uniqueIdxToSeqIdx

	void GUITabbedTitleBar::tabDragged(UINT32 tabIdx, const Vector2I& dragPos)	{		INT32 idx = uniqueIdxToSeqIdx(tabIdx);		if(idx != -1)		{			Rect2I bounds = _getLayoutData().area;			if(bounds.contains(dragPos))			{				if(!mDragInProgress)					startDrag(idx, dragPos);				mDragBtnOffset = dragPos.x - mInitialDragOffset;				for(INT32 i = 0; i < idx; i++)				{					UINT32 width = mTabButtons[i]->_getLayoutData().area.width;					INT32 centerX = mTabButtons[i]->_getLayoutData().area.x + width / 2;					if(dragPos.x < centerX)					{						GUITabButton* temp = mTabButtons[i];						mTabButtons[i] = mTabButtons[idx];						mTabButtons[idx] = temp;						break;					}				}				for(UINT32 i = idx + 1; i < (UINT32)mTabButtons.size(); i++)				{					UINT32 width = mTabButtons[i]->_getLayoutData().area.width;					INT32 centerX = mTabButtons[i]->_getLayoutData().area.x + width / 2;					if(dragPos.x > centerX)					{						GUITabButton* temp = mTabButtons[i];						mTabButtons[i] = mTabButtons[idx];						mTabButtons[idx] = temp;						break;					}				}				_markLayoutAsDirty();			}			else			{				endDrag();				_markLayoutAsDirty();				if(!onTabDraggedOff.empty())					onTabDraggedOff(tabIdx);			}		}	}
开发者ID:AlfHub,项目名称:BansheeEngine,代码行数:55,


示例19: int

void TB_PokemonItem::mouseMoveEvent(QGraphicsSceneMouseEvent * event){    if(event->buttons() & Qt::LeftButton)    {        int distance = int((event->pos()-startPos).manhattanLength());        if(distance >= QApplication::startDragDistance())        {            startDrag();        }    }}
开发者ID:Ozma1992,项目名称:pokemon-online,代码行数:11,


示例20: Q_Q

void QDockWidgetPrivate::nonClientAreaMouseEvent(QMouseEvent *event){    Q_Q(QDockWidget);    int fw = q->style()->pixelMetric(QStyle::PM_DockWidgetFrameWidth, 0, q);    QRect geo = q->geometry();    QRect titleRect = q->frameGeometry();#ifdef Q_WS_MAC    if ((features & QDockWidget::DockWidgetVerticalTitleBar)) {        titleRect.setTop(geo.top());        titleRect.setBottom(geo.bottom());        titleRect.setRight(geo.left() - 1);    } else#endif    {        titleRect.setLeft(geo.left());        titleRect.setRight(geo.right());        titleRect.setBottom(geo.top() - 1);        titleRect.adjust(0, fw, 0, 0);    }    switch (event->type()) {        case QEvent::NonClientAreaMouseButtonPress:            if (!titleRect.contains(event->globalPos()))                break;            if (state != 0)                break;            if (qobject_cast<QMainWindow*>(parent) == 0)                break;            if (isAnimating())                break;            initDrag(event->pos(), true);            if (state == 0)                break;            state->ctrlDrag = event->modifiers() & Qt::ControlModifier;            startDrag();            break;        case QEvent::NonClientAreaMouseMove:            if (state == 0 || !state->dragging)                break;            if (state->nca) {                endDrag();            }            break;        case QEvent::NonClientAreaMouseButtonRelease:            break;        case QEvent::NonClientAreaMouseButtonDblClick:            _q_toggleTopLevel();            break;        default:            break;    }}
开发者ID:fluxer,项目名称:katie,代码行数:54,


示例21: startDrag

void QProjectList::mouseMoveEvent(QMouseEvent *e){    if(e->buttons() & Qt::LeftButton)    {        int distance=(e->pos()-startPos).manhattanLength();        if(distance >= QApplication::startDragDistance())//QApplication::startDragDistance() 默认是4个像素        {            startDrag();// 开始拖动 调用函数        }        QListWidget::mouseMoveEvent(e);    }}
开发者ID:JustFFunny,项目名称:WorkSpace,代码行数:12,


示例22: startDrag

void OperatorLibraryView::mouseMoveEvent(QMouseEvent* event){    if(event->buttons() & Qt::LeftButton)    {        int distance = (event->pos() - m_startPos).manhattanLength();                if(distance >= QApplication::startDragDistance())            startDrag();    }            QTreeView::mouseMoveEvent(event);}
开发者ID:roteroktober,项目名称:stromx-studio,代码行数:12,


示例23: startDrag

void MyFileSystemView::mouseMoveEvent(QMouseEvent *event){	if (event->buttons() & Qt::LeftButton)	{		int distance = (event->pos() - m_startPos).manhattanLength();		if (distance >= QApplication::startDragDistance())		{			startDrag();		}	}	QTreeView::mouseMoveEvent(event);}
开发者ID:geolffrey,项目名称:WtDesigner,代码行数:12,


示例24: startDrag

void TeamPokeButton::mouseMoveEvent(QMouseEvent * event){    if(event->buttons() & Qt::LeftButton)    {        int distance = (event->pos()-startPos).manhattanLength();        if(distance >= QApplication::startDragDistance())        {            startDrag();        }    }    QPushButton::mouseMoveEvent(event);}
开发者ID:Airisu,项目名称:pokemon-online,代码行数:12,


示例25: startDrag

//! Handle mouse press eventsvoid CanvasView::mousePressEvent(QMouseEvent *event){	/** @todo why do we sometimes get mouse events for tablet strokes? */	if(_pendown != NOTDOWN)		return;	if(event->button() == Qt::MidButton || _dragbtndown) {		startDrag(event->x(), event->y(), _dragbtndown!=ROTATE?TRANSLATE:ROTATE);	} else if((event->button() == Qt::LeftButton || event->button() == Qt::RightButton) && _isdragging==NOTRANSFORM) {		_pendown = MOUSEDOWN;				onPenDown(dpcore::Point(mapToScene(event->pos()), 1.0), event->button() == Qt::RightButton);	}}
开发者ID:hexaditidom,项目名称:Drawpile,代码行数:14,



注:本文中的startDrag函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ startExecutor函数代码示例
C++ startCommand函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。