Domanda

Ho un paio di scatole di gruppo nella mia applicazione posta sullo stesso widget genitore e ognuna di esse è dotata di un'istanza figlio di QWTPlot.L'utente può funzionare con grafici tramite mouse (zoom, panning ...).

Voglio mantenere una traccia in cui la casella di gruppo è all'utente che funziona attualmente (che è la casella di messa a fuoco del gruppo).Tuttavia gli eventi vengono gestiti in modo standard, quindi se l'utente funziona con la trama, gli eventi del mouse vengono consumati da questa trama.Voglio sapere che l'utente sta lavorando con una cassetta di gruppo specifica, indipendentemente dalle operazioni che esegue con i suoi widget nidificati.

Qualche suggerimento?

È stato utile?

Soluzione

OK Ho trovato una soluzione.QGroupbox deve essere reimplementato, ad esempio:

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

Quindi posso connettere customreLated () di tutte le mie caselle di gruppo a uno slot che gestirà l'oggetto mittente () e tenere traccia della casella di gruppo attiva.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top