Hi Everybody,
Use Case: i selected some elements in a treeview and i try to display it in a messageBox.
Example:
P1
- C1
- C2
- C3
P2
- C4
- C5
i selected C4 C1 and C3 my displayed selection is C4 C1 C3 but i want C1 C3 C4
i post my selection code:
void MainWindow::clicSelection()
{
listeSelections = selection->selectedIndexes();
qSort(listeSelections.begin(),listeSelections.end());
selection->clearSelection();
for(int i=0;i<listeSelections.size();i++)
{
QList<QStandardItem*>item = modele->findItems( modele->data(listeSelections[i], Qt::DisplayRole).toString(),Qt::MatchExactly|Qt::MatchRecursive);
if(item.size()==0)
{
"item =0");
}else
item
[0]->setForeground
(QBrush(Qt
::blue));
}
for (int i = 0 ; i < listeSelections.size() ; i++)
{
QVariant elementSelectionne
= modele
->data
(listeSelections
[i
], Qt
::DisplayRole);
elementsSelectionnes += elementSelectionne.toString() + "<br />";
}
QMessageBox::information(this,
"Eléments sélectionnés", elementsSelectionnes
);
}
void MainWindow::clicSelection()
{
QItemSelectionModel *selection = ui->treeView->selectionModel();
listeSelections = selection->selectedIndexes();
qSort(listeSelections.begin(),listeSelections.end());
selection->clearSelection();
for(int i=0;i<listeSelections.size();i++)
{
QList<QStandardItem*>item = modele->findItems( modele->data(listeSelections[i], Qt::DisplayRole).toString(),Qt::MatchExactly|Qt::MatchRecursive);
if(item.size()==0)
{
QMessageBox::information(this, "Info debug",
"item =0");
}else
item[0]->setForeground(QBrush(Qt::blue));
}
QString elementsSelectionnes;
for (int i = 0 ; i < listeSelections.size() ; i++)
{
QVariant elementSelectionne = modele->data(listeSelections[i], Qt::DisplayRole);
elementsSelectionnes += elementSelectionne.toString() + "<br />";
}
QMessageBox::information(this, "Eléments sélectionnés", elementsSelectionnes);
}
To copy to clipboard, switch view to plain text mode
Thanks For your Help
Bookmarks