这篇教程C++ startDrag函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中startDrag函数的典型用法代码示例。如果您正苦于以下问题:C++ startDrag函数的具体用法?C++ startDrag怎么用?C++ startDrag使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了startDrag函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: startDragbool 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: startDragvoid Scene::mouseMoveEvent(QGraphicsSceneMouseEvent *event){ if(itemAt(event->scenePos(), QTransform())) startDrag(event->scenePos()); QGraphicsScene::mouseMoveEvent(event);}
开发者ID:medegor44,项目名称:Backpack,代码行数:7,
示例3: itemAtvoid 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: startDragvoid 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: cursorManvoid 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: QWidgetSourceWidget::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: startDragvoid 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: drawRubberBandsvoid 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: startDragvoid 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: startDragvoid 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: startDragvoid 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: intvoid 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_Qvoid 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: startDragvoid 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: startDragvoid 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: startDragvoid 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: startDragvoid 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函数代码示例 |