IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Qt Discussion :

Éditer un QTableView avec QStandardItemModel


Sujet :

Qt

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 62
    Par défaut Éditer un QTableView avec QStandardItemModel
    Bonjour

    J'essaye d'éditer mon QStandardItemModel après initialisation via le clic d'un bouton.

    Je m'explique:

    1) J'affiche d'abord mon QtableView et QStandardItemMode inisialiser.

    2) Ensuite j'écris du text dans mon tableau.

    3) Ensuite si je clic sur un bouton, et cela enregistre les texts éditer dans mon tableau dans un fichier.

    Mais le problème est que je n'arrive pas à simplement dans un premier temps à interagir avec mon QStandardItemModel.

    Je m'explique:

    1) 1) J'affiche d'abord mon QtableView et QStandardItemMode inisialiser.

    2) Ensuite si je clic sur un bouton, et cela affiche du nouveau text dans mon tableau à l'item spécifier.

    Ps: Mon slol3 fonctionne!

    Voici mon code:

    Construction_Table.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    class Construct_Table : public QDialog
     
    {
     Q_OBJECT
     
    public:
        Construct_Table();
     
    public:
     
        void Table1(QWidget*,int);
        void Construct_Buttons(QWidget*,int);
     
        QStandardItemModel *modele;
        QTableView *tableView;
        QStandardItem *standarditem1;
        QPushButton *playButton;
    public slots:
        void slot3();
     
    };

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    void Construct_Table::Table1(QWidget *View1,int a)
    {
     
    modele = new QStandardItemModel(30,8);
                    for(i=0;i<=29;i++){
                        for(j=0;j<=7 ;j++){
                            standarditem1 = new QStandardItem(QStandardItem::UserType);
                            standarditem1->setText("---");  //write( QDataStream & out );  //Charger_Tables_H(i,j)
                            standarditem1->setTextAlignment(Qt::AlignCenter);
                            modele->setItem (i, j, standarditem1);
                        }
                    }
     
                    tableView = new QTableView(View1);
     
                    tableView->setGeometry( 0, 62, 650, 30);
     
                    tableView->setModel(modele);
    }
     
    void Construct_Table::Construct_Buttons(QWidget *infos, int d)
    {
     
       playButton = new QPushButton("ENTER",info);
       playButton->setGeometry(760, 330, 240, 30);
     
       Construct_Table *test = new Construct_Table;
       QObject::connect(playButton, SIGNAL(clicked()),test, SLOT(slot3()));
     
    }
     
    void Construct_Table::slot3()
    {
        standarditem1 = new QStandardItem(QStandardItem::UserType);
     
        standarditem1->setText("Hello");  //write( QDataStream & out );  
        standarditem1->setTextAlignment(Qt::AlignCenter);
        modele->setItem (3, 3, standarditem1);
        tableView->setModel(modele);
     
    }
    Je n'ai aucune erreur lors de la compilation, mais après affichage, lorsque je clique sur le bouton playButton, mon application plante.

    Voila à mon avis je m'y prend mal.

    Si quelqu'un à une réflexion à faire c'est le moment

    Merci.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 62
    Par défaut
    Je reposte ce message car problème non résolu.

    Cela fait 2 jours que j'essaye de d'éditer une de mes Tables en cliquant simplement sur un bouton : , pas moyen.

    Dés que je fais appel à un mon modele dans l'exécution d'un slot sa plante!

    J'ai essayer de faire pareille en créant mon propre modelé héritant de "QAbstracTabelModel", car je sais pas si y'a moyen de manipuler le texte de chaque item avec "QStandardItemModel"

    J'arrive à afficher du text dans chaque item sans probléme avec "QStandardItemModel" et "QAbstracTabelModel" à l'inisialisation du programme mais aprés plus moyen d'éditer en cliquant sur un simple bouton.

    j'ai lu et relu l'exemple de "L'adresse Book mais pas trouver se qui manquais dans mon code

    Le slot fonctionne -> tester via QMessageBox.

    par example je n'arrive pas à éditer cette simple fonction dans mon slot!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void Construct_Table::slot3()
    {
     
                tableView->setShowGrid (false);
    }
    Je dois avoir oublier quelque chose mais quoi? update view???

    Si quelqu'un peut m'aider sa serrais sympa...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 62
    Par défaut
    Je repost car je cherche toujours la solution à mon probléme de plantage dans un slot

    Dans un premier je veur pouvoir changer le style d'une de mes vues dés que je clique sur un bouton.

    par example :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     tableIView->setShowGrid (false);
    sa dois pas etre compliquer quand meme...?


  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 62
    Par défaut
    Bingo j'ai trouver

    j'arrive mnt à afficher la grille dés que je clique sur mon bouton.

    Bande de feignant j'ai du trouver la solution tous seul!!! LoL

    maintenant je suis

    Bon je vais essayer d'aller plus loin

    prochaine étape dés que je clique sur mon bouton j'affiche un nouveau texte dans un item quelconque pour essai.

    à plus....

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 62
    Par défaut
    prochaine étape dés que je clique sur mon bouton j'affiche un nouveau texte dans un item quelconque pour essai.
    Ca marche Nickel Chrome aussi

    Probléme Résolu définitivement!

    à plus....

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2010
    Messages : 14
    Par défaut
    bonjour,
    je veux savoir si tu as une idée comment récupéré une donnée de QTableView!!!!
    je suis bloqué là il y a 2 jours,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pas d'update avec QTableView et QStandardItemModel
    Par ChMeessen dans le forum Débuter
    Réponses: 1
    Dernier message: 31/08/2009, 09h20
  2. éditer la crontab avec BCB2006
    Par Mangacker dans le forum C++Builder
    Réponses: 1
    Dernier message: 14/06/2007, 16h11
  3. [ImageMagick] Éditer des BMP avec PHP
    Par bitbis dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 19/12/2006, 00h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo