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

Discussion :

Editer une table à l'aide d'un bouton :probléme

  1. #1
    Nouveau membre du Club
    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
    Points : 34
    Points
    34
    Par défaut Editer une table à l'aide d'un bouton :probléme
    Bonjour

    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 modele ou une vue dans l'exécution d'un slot sa plante!

    A croire que une fois que je sors du constructeur plus moyen de travailler avec mes tableaux.

    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

    Construct.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
    23
    24
    25
    26
    27
    28
    29
     
    class Construct_GAME_View : public QObject
     
    {
    Q_OBJECT
     
    public:
        Construct_GAME_View();
        Construct_GAME_View(QWidget*,int);
       void InfoGameView(QWidget*);
        void InfoGameTable(QTableView*);
        void Construct_Player_Buttons(QWidget*);
     
    public:
        QStandardItemModel *modele1;
        QStandardItemModel *modele2;
        QTableView *tableIView1;
        QTableView *tableIView2;
        QStandardItem *standarditem1;
        QPushButton *playButton;
     
    public slots:
        void EditTable();
    private:
        QLabel *labelt1;
        QTabWidget *tabInfoView;
        QWidget *InfoPlayersSitView;
        QWidget *InfoPlayersWaitingView;
    };
    Construct.cpp

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    /////////////////////////////////////////////////////////////////
    Construct_GAME_View::Construct_GAME_View()
    {
    }
    Construct_GAME_View::Construct_GAME_View(QWidget *WidgetGV,int a) : QObject()
    {
        InfoGameView(WidgetGV);
        Player_Buttons(WidgetGV);
    }
    void Construct_GAME_View::Player_Buttons(QWidget *infoPlayers)
    {
     
       playButton = new QPushButton("ENTER",infoPlayers);
       playButton->setGeometry(760, 330, 240, 30);  
       Construct_GAME_View *test = new Construct_GAME_View();
       QObject::connect(playButton, SIGNAL(clicked()),test, SLOT(EditTable()));
     
    }   
    void Construct_GAME_View::InfoGameTable(QWidget *info)
    {
        tabInfoView = new QTabWidget(info);
        tabInfoView->setGeometry(760 , 100, 240, 220);
        tabInfoView->setStyleSheet(set1.Pacifique_View_Style(6));
        // 2 : Créer les pages, en utilisant un widget parent pour contenir chacune des pages
        //InfoPlayersSitView = new QWidget; 
        InfoPlayersWaitingView = new QWidget;
        // 3 : Créer le contenu des pages de widgets
            tableIView1 = new QTableView(InfoPlayersSitView);     
            Construct_InfoGameTable(tableIView1);
            tableIView2 = new QTableView(InfoPlayersWaitingView);   
            Construct_InfoGameTable(tableIView2);
        // 4 : ajouter les onglets au QTabWidget, en indiquant la page qu'ils contiennent
        tabInfoView->addTab(InfoPlayersSitView, "Player Info");
        tabInfoView->addTab(InfoPlayersWaitingView, "Players Waiting");
    }
    QTableView *Construct_GAME_View::Construct_InfoGameTable(My_Table_Model*mon_modele,QTableView*tableIView)
    {   
         int i,j;
                    modele2 = new QStandardItemModel(11,2);
                    for(i=0;i<=10;i++){
                        for(j=0;j<=1 ;j++){
                            QStandardItem *standarditem1 = new            QStandardItem(QStandardItem::UserType);
                            standarditem1->setText("---");          
                            standarditem1->setTextAlignment(Qt::AlignCenter);
                            modele2->setItem (i, j, standarditem1);
                        }
                    }         
                    tableIView->setShowGrid (false);
                     tableIView->setSelectionMode(QAbstractItemView::SingleSelection);
                    tableIView->setSelectionBehavior ( QAbstractItemView::SelectRows);        
                    tableIView->setModel(modele2);
    }
     
    void Construct_GAME_View::EditTable()
    {
        QDialog dialog1; 
        QMessageBox::information(&dialog1, tr("Editable Ok"), "OKKKKK");
        tableIView1->setShowGrid (true); 
    }
    Il me manque certainement quelque chose pour dire que la vue ou le modéle a changer????

  2. #2
    Nouveau membre du Club
    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
    Points : 34
    Points
    34
    Par défaut
    Bonsoir
    Je viens de rééditer mon code ci dessus afin de le simplifier au maximum.

    Pesrsonne n'a une idée pourquoi mon code plante lorsque j'essaye de modifier l'apparence de mon QtableView lorsque je clique sur un bouton dans mon exemple ci dessus alors que mon slot "EditTable()" fonctionne!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void Construct_GAME_View::EditTable()
    {
        QDialog dialog1; 
        QMessageBox::information(&dialog1, tr("Editable Ok"), "OKKKKK");
        tableIView1->setShowGrid (true); 
    }


    merci

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

Discussions similaires

  1. insertion d'information dans une table à l'aide de VBA
    Par bacchus30 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 22/03/2007, 17h31
  2. Editer une table avec 1 clic ?
    Par n!co dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 28/11/2006, 16h27
  3. Réponses: 4
    Dernier message: 31/07/2006, 15h19
  4. mettre à jour une table à l'aide de JSP et Hibernate
    Par kacemotti dans le forum Hibernate
    Réponses: 1
    Dernier message: 13/05/2006, 14h55
  5. Réponses: 2
    Dernier message: 21/03/2006, 16h22

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