1
내 프로젝트에는 QGraphicsView
과 QGraphicsScene
이 있습니다. QGraphicsView
서브 클래 싱 했으므로 일부보기를 내보기에 추가해야합니다.QGraphicsView 하위 클래스 및 이벤트
mousePressEvent
을 설정하면 끌기 모드 ScrollHandDrag
을 무시합니다.
제 질문은 다음과 같습니다. mousePressEvent
에 대한 응답 QGraphicsView
과 사용자 정의 사례 (예 : 다른 사례를 구별하기 위해 m_click
사용) 사이를 전환하는 방법이 있습니까? 여기
MyQGraphicsView.h
class MyQGraphicsView : public QGraphicsView
{
Q_OBJECT
public:
MyQGraphicsView(QGraphicsScene *scene, QWidget *parent = 0);
public slots:
// void mousePressEvent(QMouseEvent * e);
private:
QGraphicsScene *m_scene;
int m_click;
};
MyQGraphicsView.cpp
MyQGraphicsView::MyQGraphicsView(QGraphicsScene *scene, QWidget *parent) :
QGraphicsView(parent),
m_scene(scene),
m_click(0)
{
setScene(m_scene);
}
/*void MyQGraphicsView::mousePressEvent(QMouseEvent * e)
{
double rad = 1;
QPointF pt = mapToScene(e->pos());
if (m_click)
{
m_scene->addEllipse(pt.x()-rad, pt.y()-rad, rad*2.0, rad*2.0, QPen(), QBrush(Qt::SolidPattern));
m_click = 0;
}
else
{
m_click = 1;
}
}*/
입니다 때 m_click=1
, 점을 그려라. 그러나 m_click=0
가 ScrollHandDrag
.
둘 다 별도로 작업 할 수 있지만 동시에 할 수는 없습니다.
대단히 감사합니다. 완벽하게 작동합니다. – Leo