begin process at 2012 05 30 11:05:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

GUI

 > 

[QT] vider QGridLayout et rafraichir sont affichage


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[QT] vider QGridLayout et rafraichir sont affichage

jeudi 11 juin 2009 à 16:55:37 | [QT] vider QGridLayout et rafraichir sont affichage

yepraoulette

Salut a tous,
Je cherche en faite a afficher une partie d'un tableau (stocké dans une QList de QList) dans un GridLayout
L'utilisateur peut choisir le nb de ligne et de colonnes qu'il veut afficher de ces donnée,
Mon programme doit donc effacer le contenu du Grid a chaque fois que l'utilisateur change les dimension
et ensuite afficher le nouveaux Grid.

Mon programme s'execute sans probleme mais lorsque l'on baisse les dimension des cases de l'ancien QGrid s'affiche derriere le nouveau....
Y a til un probleme de rafraichissement ou est-ce que je detrui mal l'ancien QGrid???


Si quelqu'un a un debut de réponse je suis preneur

Voici mon code:

++++++++++++++++++++++++++++++++++++++++++++++++++

// fen.cpp

#include "fen.h"
using namespace std;


FenPrincipale::FenPrincipale()
{
  // fenetre principal
  QVBoxLayout *fenetre_principale = new QVBoxLayout(this);
  setLayout(fenetre_principale);
    setWindowTitle("Projet");
    resize(800, 600);   // a voir


// 1-generer matrice
   nb_col = new QSpinBox;
   nb_col->setValue(2);
   nb_col->setMaximum(20);
   nb_lig = new QSpinBox;
   nb_lig->setValue(2);
   nb_lig->setMaximum(20);
   QFormLayout *nom_col = new QFormLayout;
   QFormLayout *nom_lig = new QFormLayout;
       nom_col->addRow("Nombre de colonne : ",nb_col);
       nom_col->addRow("Nombre de ligne : ",nb_lig);
   m_boutongenMat = new QPushButton("Generer la Matrice");
       connect(m_boutongenMat, SIGNAL(clicked()), this, SLOT(genererMat()));
   QVBoxLayout *nb_lig_col = new QVBoxLayout;
       nb_lig_col->addLayout(nom_col);
       nb_lig_col->addLayout(nom_lig);
       nb_lig_col->addWidget(m_boutongenMat);
  
   QGroupBox *numcollig = new QGroupBox("Generer la matrice");
      numcollig->setLayout(nb_lig_col);


// 2-definition d'un tableau de QList de SpinBox
    for(int i=0;i<10;i++)
    {
        monTableauStab << QList<QDoubleSpinBox *>();
        for(int j=0;j<10;j++)
        {
            monTableauStab[i] << new QDoubleSpinBox(this);
        }
    }
   
    // gridlayout ou seront affiché les elements de la QList
  
      gridstablistLayout = new QGridLayout(this);
   QGroupBox *Boxdugrid = new QGroupBox(this);
       Boxdugrid->setLayout(gridstablistLayout);

  fenetre_principale->addWidget(numcollig);     
  fenetre_principale->addWidget(Boxdugrid);
}
       

void FenPrincipale::genererMat()
{  
    int_nb_lig = nb_lig->value() ;
    int_nb_col = nb_col->value() ;
    cout << int_nb_lig << int_nb_col << "bordel" << endl;
    // on commence par sauvegarder les donnees de la mat

     // on detruit le QGridLayout 
  if (true){   
    QLayoutItem *child;
    while ((child = gridstablistLayout->takeAt(0)) != 0)
        {
        //child->widget()->deleteLater();
        delete child;
        }   
      }

    // on affiche une partie du tableau dans un QGridLayout

    for(int i=0;i<int_nb_lig;i++)
    {
        for(int j=0;j<int_nb_col;j++)   // j a 1 car 1ere case on met label jonction  a la place
        {
         gridstablistLayout->addWidget(monTableauStab[i][j],i,j);
        }
    }
   
   
}



++++++++++++++++++++++++++++++


// fen.h

#ifndef HEADER_FENPRINCIPALE
#define HEADER_FENPRINCIPALE

#include <QtGui>
#include <iostream>

class FenPrincipale : public QWidget
{
    Q_OBJECT


    public:
        FenPrincipale();

    private slots:
        void genererMat();
       
    private:
        int int_nb_lig;
        int int_nb_col;
        QSpinBox *nb_col;
        QSpinBox *nb_lig;
        QPushButton *m_boutongenMat;
        QList<QList<QDoubleSpinBox *> > monTableauStab;  
        QGridLayout *gridstablistLayout;

};


#endif



+++++++++++++++++++++++++++++++++++++++++++++++++++


//main.cpp

#include <QApplication>
#include "fen.h"


typedef double vect[1000];
using namespace std;


int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    FenPrincipale fenetre;
    fenetre.show();

    return app.exec();
    system("pause");

return 0;
}


+++++++++++++

Dsl mais je n'ai pas trouvé comment faire de citation

mardi 16 juin 2009 à 16:49:42 | Re : [QT] vider QGridLayout et rafraichir sont affichage

SebLinck

Réponse acceptée !
Salut,

Il faut faire attention de ne rien préciser au niveau du nombre de case et de leur dimenssion dan le QtDesigner.
Sinon je n'ai pas pus lu le code que ça, Va voir sur QtFR .

Cordialement,
Sébastien.


Cette discussion est classée dans : int, col, nb, lig, fenprincipale


Répondre à ce message

Sujets en rapport avec ce message

Aide partie résolution de mon sudoku... [ par Francks11 ] Bonsoir, enfaite il me faudrait de l'aide pour ma partie sol du sudoko qui recherche les solutions du jeu. A savoir, que pour chaque essai, on conser Besoin d'aide urgent SVP [ par paulina82 ] Bonjour, j'ai un gros probleme avec mon programme ecri en langage C.lorsque je complile il n'afiche pa d'erreur mais lorsque j'esaye de l'executé il appel de fontions avec un tableau de pointeurs en paramèmtre [ par thespartan ] Voilà j'ai cette fonction qui marche :void alloue(int lig,int col){int i,j;  int l='A';  T = (int **) malloc(col*sizeof(int*));  if (T == NULL)    pri problème d'intégrer mon algorithme [ par baster200x ] Slt tous le mande! je vous adresse pour m'aider à trouver une solution à mon problème! j'ai un outil Open source Nommé [url=http://home.dei.polimi j'ai besoin de vous!!! [ par baster200x ] bonjour les amis [^^happy13] j'ai trouvé la solution pour mes problème que je l'ai poser précédemment sur le forum à propos de l'intégration d'u Problemes ac les tableau [ par alussk ] ce code doit renvoyer la niemes plus grande valeur d'un tableau d'entier. il ne marche pas donc si vous comprenez pourquoi éclairez moi svp #include Initialisation d'un tableau d'objet [ par Alela ] Bonjour,J'aimerais initialiser ma classe de cette façon :MaClasse *mc= new MaClasse[5](7);avec :class MaClasse {     int nb;     public: Variables globales [ par nisaloncaje ] Bonjour, je suis en train de créer un petit programme en c (j'utilise devc++) et j'ai un problème : je n'y comprends rien au variables globales !En ef problème de changement de données d'un tableau [ par martram ] Bonjour, j'ai débuté un programme qui devrait lire des données dans un fichier pour ensuite les traiters, et je suis bloqué puisqu'après avoir lu les Problème d allocation dynamique [ par Beqtb0x ] /*Bonjour a tous, je viens d'arriver sur ce site, je suis étudiant en première année d'informatique et j'ai un problème a un tp que même la prof n'est


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,203 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales