Files
vx4-GuiLin-Gear/.svn/pristine/b7/b7b6f9eec696da9437bb33634f431b0fb2606f1e.svn-base
T

65 lines
1.5 KiB
Plaintext

#include "myview.h"
#include <QWheelEvent>
#include "picscene.h"
#include <QDebug>
MyView::MyView(QWidget *parent) :
QGraphicsView(parent)
{
zoomRatio = 1;
//setDragMode(QGraphicsView::ScrollHandDrag);//手型拖动
//setAlignment(Qt::AlignLeft | Qt::AlignTop);
//setFocusPolicy( Qt::NoFocus );
}
static float a = 1.61;
void MyView::ZoomOut(void)
{
if(zoomRatio < 6)
{
zoomRatio++;
// scale(2,2);
scale(a,a);
}
}
void MyView::ZoomIn(void)
{
if(zoomRatio > 2)
{
zoomRatio--;
scale(1/a,1/a);
}
}
//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);
}
}