Класс QTreeWidget. Сортировка элементов

   
На этом шаге рассмотрим сортировку элементов виджета класса QTreeWidget.

   
Элементы списка можно упорядочить вызовом метода sortItems(), в который передаются значения для сортировки в убывающем или возрастающем порядке.

   
Для сортировки по датам и числовым значениям необходимо унаследовать класс QTreeWidgetItem и перезаписать в нем operator<(). Его перезапись может выглядеть так:

bool MyTreeWidgetItem::operator<(const QTreeWidgetItem& ptwiOther)
{
    bool bRet = false;
    int nColumn = treeWidget()->sortColumn();
    if (nColumn == 0) {
        QString strFormat = "dd.MM.yyyy";
        bRet = QDate::fromString(text(nColumn))
               < QDate::fromString(ptwi.text(nColumn));
    }
    return bRet;
}

   
Первым столбцом (столбец с индексом 0) будет столбец с датами. Вызовом метода sortColumn() мы запрашиваем индекс, по которому пользователь осуществляет сортировку, этот метод вызывается из виджета иерархического списка QTreeWidget. Если индекс равен 0, то мы переводим строку с датой к типу QDate и сравниваем значения дат текущего элемента с другим. После чего возвращаем результат (переменная bRet).

   
На следующем шаге рассмотрим класс QTableWidget.

Предыдущий шаг
Содержание
Следующий шаг



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий