It does? QComboBox uses a QStandardItemModel for storing it's items so I don't see any reason why wouldn't a QSortFilterProxyModel work in between.
// add items with user data
combo->addItem("B", "B's data");
combo->addItem("C", "C's data");
combo->addItem("A", "A's data");
// sort filter proxy model has been created and set like in the earlier post..
for (int i = 0; i < combo->count(); ++i)
qDebug() << combo->itemText(i) << combo->itemData(i).toString();
// outputs before sorting:
// "B" "B's data"
// "C" "C's data"
// "A" "A's data"
// sort
combo->model()->sort(0);
for (int i = 0; i < combo->count(); ++i)
qDebug() << combo->itemText(i) << combo->itemData(i).toString();
// outputs after sorting:
// "A" "A's data"
// "B" "B's data"
// "C" "C's data"
// add items with user data
combo->addItem("B", "B's data");
combo->addItem("C", "C's data");
combo->addItem("A", "A's data");
// sort filter proxy model has been created and set like in the earlier post..
for (int i = 0; i < combo->count(); ++i)
qDebug() << combo->itemText(i) << combo->itemData(i).toString();
// outputs before sorting:
// "B" "B's data"
// "C" "C's data"
// "A" "A's data"
// sort
combo->model()->sort(0);
for (int i = 0; i < combo->count(); ++i)
qDebug() << combo->itemText(i) << combo->itemData(i).toString();
// outputs after sorting:
// "A" "A's data"
// "B" "B's data"
// "C" "C's data"
To copy to clipboard, switch view to plain text mode
Bookmarks