Partage
  • Partager sur Facebook
  • Partager sur Twitter

Qt tutorial if (largeur == 600)

la condition ne marche pas!!!! !?!

Sujet résolu
    12 juin 2008 à 11:24:27

    Salut ta tous!!! alors la je pige pas , tout fonctionne super bien,
    le emit egalement lorsqu'il n'est pas dans la condition.

    Je pige pas pourquoi mon prog ne rentre jamais dans la condition
    alors que j'ai meme implementé un QLCDNumber pour avoir la valeur.
    je monte jusqu'a 2000

    void MaFenetre::changerLargeur(int largeur)
    {
    setFixedSize(largeur, height());

    if (largeur == 600) {
    emit agrandissementMax();
    }
    }

    qqun a une sugestion car la je cale....
    • Partager sur Facebook
    • Partager sur Twitter
      12 juin 2008 à 11:28:32

      je nesais pas, par contre ca serait pratique si tu mettais ton code entre les balises appropriés, afin que ceux qui t'aident aient la coloration syntaxique!
      • Partager sur Facebook
      • Partager sur Twitter
        12 juin 2008 à 11:29:50

        edit : j'ai rien dit...
        • Partager sur Facebook
        • Partager sur Twitter
          12 juin 2008 à 11:48:40

          ok j'avais pas vu cette magnifique option :D

          n'empeche je comprend tjrs pas!!! une vrai enigme...
          void MaFenetre::changerLargeur(int largeur)
          {
              setFixedSize(largeur, height());
              if(largeur==600)
              {
          		
                  emit agrandissementMax();
              }
          }
          
          • Partager sur Facebook
          • Partager sur Twitter
            12 juin 2008 à 11:51:10

            On pourrait avoir le reste du code stp?
            • Partager sur Facebook
            • Partager sur Twitter
              12 juin 2008 à 12:02:11

              avec plaisir!!
              en fait c'est du code suite au tutorial C++
              voilou ma classe :

              #include "StdAfx.h"
              #include "MaFenetre.h"
              
              MaFenetre::MaFenetre() : QWidget()
              {
                  setFixedSize(300, 250);
               
              	m_progress_bar= new QProgressBar(this);
              	m_progress_bar->setGeometry(10, 20, 180, 20);
              	m_progress_bar->setRange(200, 2000);
              	m_lcd = new QLCDNumber(this);
                  m_lcd->setSegmentStyle(QLCDNumber::Flat);
                  m_lcd->move(10, 160);
              	
              
               
                  m_slider = new QSlider(Qt::Horizontal, this);
                  m_slider->setGeometry(10, 110, 100, 20);
              	m_slider->setRange(200, 2000);
              	QObject::connect(m_slider, SIGNAL(valueChanged(int)), m_progress_bar, SLOT(setValue(int)));
              	QObject::connect(m_slider, SIGNAL(valueChanged(int)), this, SLOT(changerLargeur(int)));
              	QObject::connect(m_slider, SIGNAL(valueChanged(int)), m_lcd, SLOT(display(int)));
              
              	m_sliderV = new QSlider(Qt::Vertical, this);
                  m_sliderV->setGeometry(180, 30, 20, 100);
              	m_sliderV->setRange(200, 700);
              	//QObject::connect(m_slider, SIGNAL(valueChanged(int)), m_progress_bar, SLOT(setValue(int)));
              	QObject::connect(m_sliderV, SIGNAL(valueChanged(int)), this, SLOT(changerHauteur(int)));
              	
              
              	m_bouton_reset = new QPushButton("reset !", this);
                  m_bouton_reset->setFont(QFont("Comic Sans MS", 14));
                  m_bouton_reset->setCursor(Qt::PointingHandCursor);
                  m_bouton_reset->setIcon(QIcon("refresh_green.gif"));
                  m_bouton_reset->move(10, 50);
              
              	QObject::connect(m_bouton_reset, SIGNAL(clicked()), m_progress_bar, SLOT(reset()));
              
              	QObject::connect(this, SIGNAL(agrandissementMax()), qApp, SLOT(quit()));
              
              	//construction de about qt
              	 // Construction du bouton
                  m_bouton_about = new QPushButton("about !", this);
               
                  m_bouton_about->setFont(QFont("Comic Sans MS", 14));
                  m_bouton_about->setCursor(Qt::PointingHandCursor);
                  m_bouton_about->setIcon(QIcon("refresh_green.gif"));
                  m_bouton_about->move(10, 185);
              
              	 // Connexion du clic du bouton à la fermeture de l'application
                  QObject::connect(m_bouton_about, SIGNAL(clicked()), qApp, SLOT(aboutQt()));
              
              	// Construction du bouton
                  m_bouton_quit = new QPushButton("quitter !", this);
               
                  m_bouton_quit->setFont(QFont("Comic Sans MS", 14));
                  m_bouton_quit->setCursor(Qt::PointingHandCursor);
                  m_bouton_quit->setIcon(QIcon("refresh_green.gif"));
                  m_bouton_quit->move(100, 185);
              
              	 // Connexion du clic du bouton à la fermeture de l'application
                  QObject::connect(m_bouton_quit, SIGNAL(clicked()), qApp, SLOT(quit()));
              
              }
              
              
              
              void MaFenetre::changerLargeur(int largeur)
              {
                  setFixedSize(largeur, height());
                  if(largeur==600) // c'est ici que ca marche pas !?!
                  {
              	   emit agrandissementMax();
                  }
              }
              
              void MaFenetre::changerHauteur(int hauteur)
              {
                  setFixedSize(width() , hauteur);
              }
              
              • Partager sur Facebook
              • Partager sur Twitter
                12 juin 2008 à 12:10:41

                t'a bien défini ton signal dans ton .hpp?
                • Partager sur Facebook
                • Partager sur Twitter
                  12 juin 2008 à 12:15:21

                  Et avec un >= plutôt qu'un ==, est-ce que tu as la même chose ? Et comme le dit Goten, vérifie effectivement que tu déclares ton signal dans ton header ;) .
                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 juin 2008 à 13:03:53

                    génial!! le >= a fonctionné !!! bien vu!
                    en effet apparament le curseur passe de 584 à 604!!!
                    j'allais presque remettre l'operateur == en cause :p

                    merci bcp!!!
                    • Partager sur Facebook
                    • Partager sur Twitter
                      12 juin 2008 à 14:40:06

                      Il faut prendre l'habitude de TOUJOURS encadrer tes valeurs si possible, surtout pour des conditions de ce genre. Tester LA valeur max est de très mauvais gout, et n'est ni fiable, ni robuste, ni meme dans ton cas fonctionnel.
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Qt tutorial if (largeur == 600)

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown