Question

J'ai quelques cases de groupe dans mon application qui sont placées sur le même widget parent et que chacune d'elles est fournie avec une instance d'enfant de QWTPLOT.L'utilisateur peut fonctionner avec des parcelles via la souris (zoomer, panoramique ...).

Je veux garder une piste dans laquelle la boîte de groupe est utilisée actuellement (qui correspond à la zone de groupe de discussion).Cependant, les événements sont traités de manière standard, de sorte que l'utilisateur fonctionne avec parcelle, les événements de la souris sont consommés par cette parcelle.Je veux savoir que l'utilisateur travaille avec une boîte de groupe spécifique, quelle que soit les opérations qu'il effectue avec ses widgets imbriqués.

Toute suggestion?

Était-ce utile?

La solution

OK j'ai trouvé une solution.QGroupBox doit être réimprimé, par exemple:

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

Ensuite, je peux connecter CustomRélied () de toutes mes boîtes de groupe à une fente qui gérera l'objet Sender () et gardera la piste sur la boîte de groupe active.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top