Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qwt Discussion :

Légende


Sujet :

Qwt

  1. #1
    Membre averti
    Légende
    Bonjour,
    J'ai un QwtPlot avec plusieurs courbes affichées QwtPlotCurve. J'affiche la légende de chacuns d'entre elles, comprenant un point suivi du titre.
    Voila je voudrait en retirer certain quand le titre est vide. Je faisais comme suit avec qwt 6.0.0 mais avec la version 6.1.0 plus moyen de procédait comme suit et pas moyen de trouver une alternative

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        QwtPlot *plot;
        QwtPlotCurve curve[nbrCurve];
     
          for (int i=0;i<nbrCurve;i++) {
              QWidget * pqwLegendItem = plot->legend()->find(curve[i]);
              if (pqwLegendItem!=NULL) {
                 if (curve[i]->title().isEmpty()) pqwLegendItem->setVisible(false);
              }


    Merci de votre aide

  2. #2
    Candidat au Club
    Qwt Legende
    Bonjour,

    Est-ce que vous avez trouvé une solution ?

    J'ai un problème analogue : en passant de la 6.0.1 à la 6.1, QwtLegend::remove a disparu, et je ne trouve pas le moyen de supprimer des légendes pour des courbes spécifiques.

    Merci,

  3. #3
    Membre averti
    Oui, quelquechose comme ca:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    for (int i=nbrCurve-1;i>=0;i--) {
            QwtLegend *lgd = qobject_cast<QwtLegend *>(plot->legend());
            if (lgd!=NULL) {
              QList<QWidget *> legendWidgets = lgd->legendWidgets(plot->itemToInfo(plot->curve[i]));
              if (legendWidgets.size()>=1) {
                if (plot->curve[i]->title().isEmpty()) {
                  legendWidgets[0]->setVisible(false);
                }
              }
            }
          }