Pergunta

Eu tenho algumas caixas de grupo em meu aplicativo que são colocadas no mesmo widget pai e cada uma delas é fornecida com uma instância filha do QwtPlot.O usuário pode operar com plotagens via mouse (zoom, panorâmica...).

Quero manter um controle em qual caixa de grupo o usuário está trabalhando atualmente (que é a caixa do grupo de foco).Porém os eventos são tratados de maneira padrão, portanto se o usuário trabalhar com o gráfico, os eventos do mouse serão consumidos por este gráfico.Quero saber se o usuário está trabalhando com uma caixa de grupo específica, independentemente das operações que ele executa com seus widgets aninhados.

Alguma sugestão?

Foi útil?

Solução

Ok, encontrei uma solução.QGroupBox precisa ser reimplementado, por exemplo:

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);
  }
};

Então, posso conectar customReleased() de todas as minhas caixas de grupo a um slot que manipulará o objeto sender() e acompanhará a caixa de grupo ativa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top