2010-05-31 4 views
0

im essayant de PROGRAMMATIQUE sélectionner et changer la couleur d'arrière-plan de toutes les colonnes de QStandardItemModel
j'ai ce qui me peindre que la première colonne sur 5 que la ligne contientQT comment sélectionner et modifier toutes les coulmns de QStandardItemModel

// getting the rows 
QStandardItem* standardItem = m_model->item(i); 
//set the color i like all the row to be painted 
standardItem->setBackground(QBrush(QColor(255,0,0))); 
+0

Peut-être que vous devriez expliquer un peu plus près comment votre modèle est réellement mis en place ... (si ce n'est pas une ligne droite x table de la colonne –

Répondre

1

Try this ..

for(int i = 0; i<rowCount; ++i) 
{ 
    for(int j = 0; j<columnCount; ++j) 
     { 
      m_model->item(i,j)->setBackground(QBrush(QColor(255,0,0))); 
     } 
} 

ce n'est pas testé .. vérifier ..

+0

merci pour l'avertissement non testé .. tout est bien et dandy pour une mise en page, mais QStandardItemModel ne suit pas cette mode , et donc le colloumnCount() peut changer en fonction de la ligne en cours ... – ianmac45

+0

@ ianmac45, je dint signifie d'appeler la fonction columCount(). Il a spécifié le nombre de colonnes et donc j'ai utilisé la variable appelée columnCount. Bien sûr, vous devez connaître le nombre de colonnes avant l'utilisation de l'extrait ci-dessus. Corrigez-moi, si j'ai mal compris votre commentaire. – liaK

+0

@ liak, ahh, je n'ai pas remarqué que vous avez utilisé des variables au lieu des méthodes .. mais, ce que j'ai dit s'applique encore au nombre de lignes, car il ne peut y avoir qu'un seul indice de haut niveau, et il a gagné 't, par défaut, voyager dans les niveaux inférieurs ... mais, de toute façon, vous avez dit qu'il n'a pas été testé, et je ne faisais qu'expliquer ce que j'ai vu .. – ianmac45

Questions connexes