2014-01-09 2 views
0

동일한 부모 위젯에 배치 된 내 응용 프로그램에 몇 개의 그룹 상자가 있고 각각에 QwtPlot의 자식 인스턴스가 제공됩니다. 사용자는 마우스로 플롯을 조작 할 수 있습니다 (확대/축소, 패닝 ...).QGroupBox 클릭/포커스

그룹 상자가 현재 작업중인 사용자 (포커스 그룹 상자)의 트랙을 유지하고 싶습니다. 그러나 이벤트는 표준 방식으로 처리되므로 사용자가 플롯을 사용하면 마우스 이벤트가이 플롯에서 사용됩니다. 나는 중첩 된 위젯으로 어떤 작업을 수행하든 관계없이 사용자가 특정 그룹 상자로 작업하고 있음을 알고 싶다.

제안 사항?

답변

1

나는 해결책을 찾았습니다. QGroupBox 예를 들어, 다시 구현해야합니다 :

class CustomGroupBox : public QGroupBox { 
    Q_OBJECT 
public: 
    CustomGroupBox(QWidget *parent = 0) : QGroupBox(parent); 
    CustomGroupBox(const QString &title, QWidget* parent = 0) : QGroupBox(title, parent); 
signals: 
    void customReleased(); 
protected: 
    void mouseReleaseEvent(QMouseEvent* event) { 
    emit customReleased(); 
    QGroupBox::mouseReleaseEvent(event); 
    } 
}; 

그럼 내가 보낸 사람() 객체를 처리하고 활성 그룹 상자에 대해 추적 할 하나 개의 슬롯에 내 모든 그룹 상자의 customReleased()를 연결할 수 있습니다.

관련 문제