2012-07-10 4 views
0

Je crée une table et y insère la ligne comme ceci.une seule ligne est insérée dans la table et cela aussi conditionnelle et si la condition n'est pas satisfaite qu'une erreur est affichée. le problème est que lorsqu'une ligne est insérée dans une condition satisfaisante, l'autre ligne insérée à nouveau sur la condition satisfaisante ne réécrit pas cette ligne mais utilise les deux colonnes suivantes de cette ligne pour conserver les deux colonnes précédentes vides.QStandardItem insertion de lignes d'une manière étrange

Exemple

premier résultat:

2 bonjour

second résultat:

 3 hello 

code

void searchWindow::TextReturn() 
{ 
     int id = (text->text()).toInt(); 
     map<int,QString>::iterator itt; 
     itt = appWindow::dataa.find(id); 
     if(itt != appWindow::dataa.end())   //returns 1 if we found something 
     { 
       m_mode1 = new QStandardItemModel(0,2,this); 
       m_mode1->setHorizontalHeaderItem(0, new QStandardItem(QString("ID"))); 
       m_mode1->setHorizontalHeaderItem(1, new QStandardItem(QString("DATA"))); 

       m_items << new QStandardItem((QString("%1").arg(id))); 
       m_items << new QStandardItem((*itt).second); 
       m_mode1->appendRow(m_items); 
       m_tablee->update(); 
       text->setText(""); 
       m_tablee->setModel(m_mode1); 
     } 
     else 
     { 
       m_mode1 = new QStandardItemModel(0,2,this); 
       m_mode1->setHorizontalHeaderItem(0, new QStandardItem(QString("SEQUENCE"))); 
       m_mode1->setHorizontalHeaderItem(1, new QStandardItem(QString("MESSAGE"))); 

       m_msgBox = new QMessageBox(); 
       m_msgBox->setWindowTitle("Alert"); 
       m_msgBox->setText("INVALID ID ENTERED"); 
       m_msgBox->show(); 
       text->setText(""); 

       m_tablee->setModel(m_mode1); 

     } 
} 

Merci pour toute aide à l'avance

Répondre

0

Je ne sais pas si cela va résoudre votre problème, parce que vous avez beaucoup de références membres ambiguës dans cet exemple, mais êtes-vous sûr que vous effacez que QList m_list à chaque fois par la suite ? Peut-être que vous accumulez simplement plus d'articles à chaque fois.

Essayez de se débarrasser de la QList + addRow et juste faire:

m_model->setItem(0,0,item1) 
m_model->setItem(0,1,item2) 
Questions connexes