QT에 대한 지식이 부족한 경우 시도해 볼 필요가 없으면 시간 낭비를 피하려고합니다.QT에 이벤트 필터를 설치하십시오.
QGraphicsItems에서 파생되지 않은 클래스 X가 있고 그 중 여러 개의 QGraphicsItems가 포함 된 필드가 있다고 가정합니다. X에서 이벤트 필터를 정의하고 QGraphicsItems에 이벤트 필터를 설치하여 X가 QGraphicsItem 자체보다 먼저 이벤트를 수신하도록 할 수 있습니까? 감사합니다. .
QT에 대한 지식이 부족한 경우 시도해 볼 필요가 없으면 시간 낭비를 피하려고합니다.QT에 이벤트 필터를 설치하십시오.
QGraphicsItems에서 파생되지 않은 클래스 X가 있고 그 중 여러 개의 QGraphicsItems가 포함 된 필드가 있다고 가정합니다. X에서 이벤트 필터를 정의하고 QGraphicsItems에 이벤트 필터를 설치하여 X가 QGraphicsItem 자체보다 먼저 이벤트를 수신하도록 할 수 있습니까? 감사합니다. .
QGraphicsItem에서 상속 한 객체가 아니라 디자인이 허용되는 경우 QGraphicsObject에서 상속받으며 표준 QObject :: installEventFilter를 사용할 수 있습니다.
그렇지 않으면 QGraphicsItem에서 상속받은 클래스 'X'가 있어야합니다.
그런 다음 QGraphicsScene을 통해 하나의 GraphicsItem에서 다른 GraphicsItem으로 이벤트 필터를 설치할 수 있습니다. 자세한 내용은 the Qt Documentation here입니다.
다른 항목의 이벤트를 필터링하려면이 항목을 다른 항목의 이벤트 필터로 설치하십시오.
예 : 기능에서
QGraphicsScene scene;
QGraphicsEllipseItem *ellipse = scene.addEllipse(QRectF(-10, -10, 20, 20));
QGraphicsLineItem *line = scene.addLine(QLineF(-10, -10, 20, 20));
line->installSceneEventFilter(ellipse);
// line's events are filtered by ellipse's sceneEventFilter() function.
ellipse->installSceneEventFilter(line);
// ellipse's events are filtered by line's sceneEventFilter() function.
감사합니다. 그것은 내 인생을 더욱 복잡하게 만듭니다. 기본적으로 QGraphicsItems 클래스와 비 QT 매개 변수가 필요한 클래스가 필요합니다. QGraphicsItem은 마우스가 마우스를 가리킬 때 나머지 QGraphicsItem을 숨기거나 구울 수 있습니다. – Francesco
은'QObject를 :: installEventFilter (QObject를 *)는 '모두 인수 및 클래스 QGraphicsItem'는 QObject를 아니다'QObject's 수 있지만한다. 네가 X 클래스가 뭔지 모르겠다. 그러므로 나는 불가능하다고 생각한다. – vahancho
물론, 실제로 이벤트를 수신하는 오브젝트에 이벤트 필터를 설치하려고합니다. Qt에서 이러한 객체는 'QObject'에서 파생되어야합니다. 따라서'QGraphicsScene'에 도달하는 이벤트를 필터링해야합니다. –