示例#1
0
void MainGraphicsView::keyPressEvent(QKeyEvent *event)
{
	if(event->modifiers() & Qt::ControlModifier)
	{
		switch (event->key())
		{
			case Qt::Key_Plus:
				scaleView(qreal(1.2));
				break;
			case Qt::Key_Minus:
			case Qt::Key_Equal:
				scaleView(1 / qreal(1.2));
				break;
			default:
				QGraphicsView::keyPressEvent(event);
		}
	}
	else
	{
		switch (event->key())
		{
			case Qt::Key_Left:
				emit prevImage();
				break;
			case Qt::Key_Right:
				emit nextImage();
				break;
			default:
				QGraphicsView::keyPressEvent(event);
		}
	}
}
示例#2
0
 void GraphWidget::keyPressEvent(QKeyEvent *event)
 {
     switch (event->key()) {
     case Qt::Key_Up:
         centerNode->moveBy(0, -20);
         break;
     case Qt::Key_Down:
         centerNode->moveBy(0, 20);
         break;
     case Qt::Key_Left:
         centerNode->moveBy(-20, 0);
         break;
     case Qt::Key_Right:
         centerNode->moveBy(20, 0);
         break;
     case Qt::Key_Plus:
         scaleView(1.2);
         break;
     case Qt::Key_Minus:
         scaleView(1 / 1.2);
         break;
     case Qt::Key_Space:
     case Qt::Key_Enter:
         foreach (QGraphicsItem *item, scene()->items()) {
             if (qgraphicsitem_cast<Node *>(item))
                 item->setPos(-150 + qrand() % 300, -150 + qrand() % 300);
         }
         break;
     default:
         QGraphicsView::keyPressEvent(event);
     }
 }
示例#3
0
void CanvasView::keyPressEvent(QKeyEvent *event){

    switch(event->key()) {
        case Qt::Key_Plus:
            scaleView(qreal(1.2));
            break;
        case Qt::Key_Minus:
            scaleView(1 / qreal(1.2));
            break;
        default: QGraphicsView::keyPressEvent(event);
    }
}
示例#4
0
// override mouse move event
void Renderer::mouseMoveEvent(QMouseEvent * event)
{
    QTextStream cout(stdout);
    cout << "Stub: Motion at " << event->x() << ", " << event->y() << ".\n";
    timer->start();
    m_mouseEnd = event->x();

    if (m_button == Qt::LeftButton && m_modifier != Qt::ShiftModifier)
    {
        rotateView(m_mouseStart, m_mouseEnd, 1);
    }

    else if(m_button == Qt::MiddleButton && m_modifier != Qt::ShiftModifier)
    {
        rotateView(m_mouseStart, m_mouseEnd, 0.0, 1.0);
    }

    else if(m_button == Qt::RightButton && m_modifier != Qt::ShiftModifier)
    {
        rotateView(m_mouseStart, m_mouseEnd, 0.0, 0.0, 1.0);
    }

    else if((m_button == Qt::LeftButton || m_button == Qt::MiddleButton || m_button == Qt::RightButton) && m_modifier == Qt::ShiftModifier)
    {
        scaleView(m_mouseStart, m_mouseEnd);
    }

    m_mouseStart = m_mouseEnd;
}
示例#5
0
void InspectTool::keyReleaseEvent(QKeyEvent *event)
{
    switch (event->key()) {
    case Qt::Key_Plus:
        zoomIn();
        break;
    case Qt::Key_Minus:
        zoomOut();
        break;
    case Qt::Key_1:
    case Qt::Key_2:
    case Qt::Key_3:
    case Qt::Key_4:
    case Qt::Key_5:
    case Qt::Key_6:
    case Qt::Key_7:
    case Qt::Key_8:
    case Qt::Key_9: {
        qreal newScale = ((event->key() - Qt::Key_0) * 1.0f);
        scaleView(newScale / m_contentItem->scale(), m_mousePosition, m_mousePosition);
        break;
    }
    default:
        break;
    }
}
示例#6
0
/*!\func TGraph::TGraph
 *  --,
 * \param
 * - parent -
 * \return
 */
GraphBody::GraphBody(EnterInputs *parent) :
	QGraphicsView(parent),
	m_ui(new Ui::GraphBody)
{
	LOG(LOG_DEBUG, QString(__FUNCTION__) + " <" + QString::number(__LINE__) + ">");
	factory = 0;
	setState(new State());
	m_ui->setupUi(this);
	this->parent = parent;
	line = new QGraphicsLineItem;
	scene.setItemIndexMethod(QGraphicsScene::NoIndex);
	setScene(&scene);
	setRenderHint(QPainter::Antialiasing);
	setTransformationAnchor(AnchorUnderMouse);
	setResizeAnchor(AnchorViewCenter);
	scaleView(1);
	//scene.setSceneRect(200*factor, 100*factor, width(), height());
	setMinimumSize(400, 400);
	currentIndex = -1;
	scene.addItem(line);
	rootNode = getFactory()->newRoot();
	node = rootNode;
	max_id = 0;
	foreach(INode* n, node->nodes())
		n->show();
	setLevelsPath();
	change(false);
}
示例#7
0
文件: zoomtool.cpp 项目: RS102839/qt
void ZoomTool::keyReleaseEvent(QKeyEvent *event)
{
    switch (event->key()) {
    case Qt::Key_Plus:
        zoomIn();
        break;
    case Qt::Key_Minus:
        zoomOut();
        break;
    case Qt::Key_1:
    case Qt::Key_2:
    case Qt::Key_3:
    case Qt::Key_4:
    case Qt::Key_5:
    case Qt::Key_6:
    case Qt::Key_7:
    case Qt::Key_8:
    case Qt::Key_9:
    {
        m_currentScale = ((event->key() - Qt::Key_0) * 1.0f);
        scaleView(view()->mapToScene(m_mousePos)); // view()->mapToScene(view()->rect().center())
        break;
    }

    default:
        break;
    }

}
示例#8
0
void ReportView::init()
{
	setBackgroundBrush(Qt::lightGray);
	//setRenderHints(QPainter::Antialiasing | 
	//	QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing);
	scaleView(1);
}
示例#9
0
void MapGraphicsView::keyPressEvent(QKeyEvent *event)
{
    if(event->modifiers() & Qt::ControlModifier)
    {
        switch (event->key())
        {
        case Qt::Key_Plus:
            scaleView(qreal(1.2));
            break;
        case Qt::Key_Minus:
        case Qt::Key_Equal:
            scaleView(1 / qreal(1.2));
            break;
        default:
            QGraphicsView::keyPressEvent(event);
        }
    }
}
示例#10
0
 void GraphicsView::wheelEvent(QWheelEvent *event)
 {
   if (event->modifiers() == Qt::ControlModifier)
   {
     scaleView(pow(double(2), event->delta() / 240.0));
     return;
   }
   QGraphicsView::wheelEvent(event);
 }
示例#11
0
文件: zoomtool.cpp 项目: RS102839/qt
void ZoomTool::wheelEvent(QWheelEvent *event)
{
    if (event->orientation() != Qt::Vertical)
        return;

    Qt::KeyboardModifier smoothZoomModifier = Qt::ControlModifier;
    if (event->modifiers() & smoothZoomModifier) {
        int numDegrees = event->delta() / 8;
        m_currentScale += m_smoothZoomMultiplier * (numDegrees / 15.0f);

        scaleView(view()->mapToScene(m_mousePos));

    } else if (!event->modifiers()) {
        if (event->delta() > 0) {
            m_currentScale = nextZoomScale(ZoomIn);
        } else if (event->delta() < 0) {
            m_currentScale = nextZoomScale(ZoomOut);
        }
        scaleView(view()->mapToScene(m_mousePos));
    }
}
示例#12
0
void CanvasView::wheelEvent(QWheelEvent *event){

    scaleView(pow((double)2, -event->delta() / 240.0));

    /*setTransformationAnchor(QGraphicsView::AnchorUnderMouse);

    // scale the view / zoom in or out
    double scaleFactor = 1.15;

    if(0 < event->delta())
        scale(scaleFactor, scaleFactor); // zoom in
    else
        scale(1.0 / scaleFactor, 1.0 / scaleFactor); // zoom out*/

}
示例#13
0
void InspectTool::wheelEvent(QWheelEvent *event)
{
    if (event->orientation() != Qt::Vertical)
        return;

    Qt::KeyboardModifier smoothZoomModifier = Qt::ControlModifier;
    if (event->modifiers() & smoothZoomModifier) {
        int numDegrees = event->delta() / 8;
        qreal newScale = m_contentItem->scale() + m_smoothScaleFactor * (numDegrees / 15.0f);
        scaleView(newScale / m_contentItem->scale(), m_mousePosition, m_mousePosition);
    } else if (!event->modifiers()) {
        if (event->delta() > 0) {
            zoomIn();
        } else if (event->delta() < 0) {
            zoomOut();
        }
    }
}
示例#14
0
void MainGraphicsView::wheelEvent(QWheelEvent *event)
{
	qreal scale = pow((double)2, event->delta() / 240.0);
	if(event->modifiers() & Qt::ShiftModifier)
	{
// 		m_wheelCounter += scale;
// 		qDebug() << "Scroll Delta:"<<scale<<", m_wheelCounter:"<<m_wheelCounter;
// 		if(m_wheelCounter > 3)
// 			m_wheelCounter = 0;
		if(scale > 0)
			emit nextImage();
		else
			emit prevImage();
	}
	else
	{
		scaleView(scale);
	}
}
示例#15
0
MyGraphBase::MyGraphBase( QWidget* parent )
  : QGraphicsView( parent ),
    maxPeriod( 39 )
{
    mScene = new QGraphicsScene(this);
    mScene->setItemIndexMethod(QGraphicsScene::NoIndex);
    setScene(mScene);
    setCacheMode(CacheBackground);
    setViewportUpdateMode(BoundingRectViewportUpdate);
    setRenderHint(QPainter::Antialiasing);
    setTransformationAnchor(AnchorUnderMouse);
    setResizeAnchor(AnchorViewCenter);
    minWayToLastPoint = 30;

    scaleView(qreal(0.9));
    // Akceptuj upuszcanie obiektu do widgetu
    setAcceptDrops(true);
    mViewScale = qreal(0.9);
}
示例#16
0
void ImageViewerWidget::wheelEvent(QWheelEvent *event)
{
  scaleView(pow((double)1.3, event->delta() / 240.0));
}
示例#17
0
文件: zoomtool.cpp 项目: RS102839/qt
void ZoomTool::zoomTo100()
{
    m_currentScale = 1.0f;
    scaleView(view()->mapToScene(view()->rect().center()));
}
示例#18
0
void MapGraphicsView::zoomOut()
{
    scaleView(1 / qreal(1.2));
}
示例#19
0
//! [5]
void Graph_GraphicsView::wheelEvent(QWheelEvent *event){
    scaleView(pow((double)2, event->delta() / 240.0));
}
示例#20
0
文件: zoomtool.cpp 项目: RS102839/qt
void ZoomTool::zoomOut()
{
    m_currentScale = nextZoomScale(ZoomOut);
    scaleView(view()->mapToScene(m_mousePos));
}
示例#21
0
//! [5]
//!
//!
//滚轮事件
void grapWidget::wheelEvent(QWheelEvent *event){
    scaleView(pow((double)2, event->delta() / 240.0));
}
示例#22
0
void GraphWidget::zoomOut()
{
    scaleView(1 / qreal(1.2));
}
示例#23
0
void centralwidget::wheelEvent(QWheelEvent *event)
{
    scaleView(pow((double)2, -event->delta() / 240.0));
}
示例#24
0
void InspectTool::zoomOut()
{
    qreal newScale = nextZoomScale(ZoomOut);
    scaleView(newScale / m_contentItem->scale(), m_mousePosition, m_mousePosition);
}
示例#25
0
void InspectTool::touchEvent(QTouchEvent *event)
{
    QList<QTouchEvent::TouchPoint> touchPoints = event->touchPoints();

    switch (event->type()) {
    case QEvent::TouchBegin:
        if (touchPoints.count() == 1 && (event->touchPointStates() & Qt::TouchPointPressed)) {
            if (!m_pressAndHoldTimer.isActive())
                m_pressAndHoldTimer.start();
            m_mousePosition = touchPoints.first().pos();
            initializeDrag(touchPoints.first().pos());
            m_tapEvent = true;
        } else {
            m_tapEvent = false;
        }
        break;
    case QEvent::TouchUpdate: {
        if (touchPoints.count() > 1)
            m_tapEvent = false;
        if ((touchPoints.count() == 1)
                && (event->touchPointStates() & Qt::TouchPointMoved)) {
            m_mousePosition = touchPoints.first().pos();
            moveItem(true);
        } else if ((touchPoints.count() == 2)
                   && (!(event->touchPointStates() & Qt::TouchPointReleased))) {
            // determine scale factor
            const QTouchEvent::TouchPoint &touchPoint0 = touchPoints.first();
            const QTouchEvent::TouchPoint &touchPoint1 = touchPoints.last();

            qreal touchScaleFactor =
                    QLineF(touchPoint0.pos(), touchPoint1.pos()).length()
                    / QLineF(touchPoint0.lastPos(), touchPoint1.lastPos()).length();

            QPointF oldcenter = (touchPoint0.lastPos() + touchPoint1.lastPos()) / 2;
            QPointF newcenter = (touchPoint0.pos() + touchPoint1.pos()) / 2;

            m_pinchStarted = true;
            scaleView(touchScaleFactor, newcenter, oldcenter);
        }
        break;
    }
    case QEvent::TouchEnd: {
        m_pressAndHoldTimer.stop();
        if (m_pinchStarted) {
            m_pinchStarted = false;
        }
        if (touchPoints.count() == 1 && !m_dragStarted &&
                !m_didPressAndHold && m_tapEvent) {
            m_tapEvent = false;
            bool doubleTap = event->timestamp() - m_touchTimestamp
                    < static_cast<ulong>(QGuiApplication::styleHints()->mouseDoubleClickInterval());
            if (doubleTap) {
                m_nameDisplayTimer.stop();
                selectNextItem();
            }
            else {
                selectItem();
            }
            m_touchTimestamp = event->timestamp();
        }
        m_didPressAndHold = false;
        break;
    }
    default:
        break;
    }
}
示例#26
0
/*!\func
 *
 * \param
 * -
 * \return
 */
void GraphBody::wheelEvent(QWheelEvent *event)
{
	LOG(LOG_DEBUG, QString(__FUNCTION__) + " <" + QString::number(__LINE__) + ">");
	if(event->modifiers() & Qt::ControlModifier)
		scaleView(pow((double)2, -event->delta() / 240.0));
}
示例#27
0
void CSceneWidget::onZoomIn()
{
    scaleView(qreal(1.2));
}
示例#28
0
void MapGraphicsView::zoomIn()
{
    scaleView(qreal(1.2));
}
示例#29
0
void CSceneWidget::onZoomOut()
{
    scaleView(1 / qreal(1.2));
}
示例#30
0
 /* Allow for a somewhat primative zoom. */
 void Scene2D::wheelEvent(QWheelEvent *event) {
   scaleView(pow((double)2, -event->delta() / 240.0));
 }