0
그래서이 작은 프로젝트 (나는 QT에 새로 온 사람)을 짓고 있어요를 클릭했습니다. 클릭하는 곳에 새 타원을 추가하고 싶습니다. 난 그냥가 "클릭"이벤트와 함께 할 수있는 뭔가가 알고 있지만, 나는이 두 가지를 연결하는 방법을 모르겠어요. 누군가 도움을 줄 수 있습니까?Qt는 QGraphicsScene 이벤트
그래서이 작은 프로젝트 (나는 QT에 새로 온 사람)을 짓고 있어요를 클릭했습니다. 클릭하는 곳에 새 타원을 추가하고 싶습니다. 난 그냥가 "클릭"이벤트와 함께 할 수있는 뭔가가 알고 있지만, 나는이 두 가지를 연결하는 방법을 모르겠어요. 누군가 도움을 줄 수 있습니까?Qt는 QGraphicsScene 이벤트
사용자 정의 장면을 만들고 mousePressEvent
을 구현할.
헤더 :
#ifndef GRAPHICSSCENE_H
#define GRAPHICSSCENE_H
#include <QGraphicsScene>
#include <QPoint>
#include <QMouseEvent>
class GraphicsScene : public QGraphicsScene
{
Q_OBJECT
public:
explicit GraphicsScene(QObject *parent = 0);
~GraphicsScene();
signals:
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *event);
};
#endif // GRAPHICSSCENE_H
CPP : 예를 들어
void GraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)
{
if (mouseEvent->button() == Qt::LeftButton)
{
QPointF p = mouseEvent->scenePos();
int l = 20;
addEllipse(p.x()-l/2,p.y()-l/2,l,l,QPen(Qt::green));//you can use another approach to create ellipse
}
QGraphicsScene::mousePressEvent(mouseEvent);
}
어떤이 줄을 도다? addEllipse(p.x()-l/2,p.y()-l/2,l,l,QPen(Qt::green));
그것은 당신이 클릭 한 위치의 위치에있을 것입니다 ellipce하지만,이 타원의 중심을 그립니다.