私のプロジェクトにはQGraphicsView
と がありQGraphicsScene
ます。ビューにいくつかの追加イベントを追加する必要があるため、サブクラス化しましQGraphicsView
た。
問題は、設定するmousePressEvent
とドラッグ モードが無効になることですScrollHandDrag
。
QGraphicsView
私の質問は次のとおりです。デフォルトの回答mousePressEvent
とカスタムの回答を切り替える方法はありますか (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
。
両方を別々に機能させることはできますが、同時にはできません。