64 lines
1.4 KiB
C++
64 lines
1.4 KiB
C++
#include "myview.h"
|
|
#include <QWheelEvent>
|
|
#include "picscene.h"
|
|
|
|
MyView::MyView(QWidget *parent) :
|
|
QGraphicsView(parent)
|
|
{
|
|
zoomRatio = 1;
|
|
//setDragMode(QGraphicsView::ScrollHandDrag);//手型拖动
|
|
//setAlignment(Qt::AlignLeft | Qt::AlignTop);
|
|
//setFocusPolicy( Qt::NoFocus );
|
|
}
|
|
|
|
void MyView::ZoomOut(void)
|
|
{
|
|
if(zoomRatio < 3)
|
|
{
|
|
zoomRatio++;
|
|
scale(2,2);
|
|
}
|
|
}
|
|
|
|
void MyView::ZoomIn(void)
|
|
{
|
|
if(zoomRatio > 0)
|
|
{
|
|
zoomRatio--;
|
|
scale(0.5,0.5);
|
|
}
|
|
}
|
|
|
|
//void MyView::wheelEvent(QWheelEvent*event) //滚轮事件
|
|
//{
|
|
//// if(event->delta() > 0) //如果鼠标滚轮远离使用者,则delta()返回正值
|
|
//// scale(0.5,0.5); //视图缩放
|
|
//// else scale(2,2);
|
|
//}
|
|
|
|
|
|
//void MyView::mousePressEvent(QMouseEvent*event)
|
|
//{
|
|
//// rotate(90); //视图旋转顺时针90度
|
|
//}
|
|
|
|
void MyView::keyPressEvent(QKeyEvent *event)
|
|
{
|
|
//event->accept();
|
|
//parent()->event((QEvent*) event);
|
|
if (event->key() == Qt::Key_Left || event->key() == Qt::Key_Right || event->key() == Qt::Key_Up || event->key() == Qt::Key_Down)
|
|
{
|
|
// 处理上下键事件
|
|
PicScene* picScene = dynamic_cast<PicScene*>(this->scene());
|
|
if(picScene)
|
|
{
|
|
picScene->keyPressEvent(event);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// 其他键事件交给父类处理
|
|
QGraphicsView::keyPressEvent(event);
|
|
}
|
|
}
|