свойство sourceModel в QSortFilterPtoxyModel - необходимо понимать этот код

0

Я перешел к примеру здесь, и я наткнулся на этот пример

bool MySortFilterProxyModel::lessThan(const QModelIndex &left,
                                       const QModelIndex &right) const
 {
     QVariant leftData = sourceModel()->data(left);
     QVariant rightData = sourceModel()->data(right);

     if (leftData.type() == QVariant::DateTime) {
         return leftData.toDateTime() < rightData.toDateTime();
     } else {
         QRegExp *emailPattern = new QRegExp("([\\w\\.]*@[\\w\\.]*)");

         QString leftString = leftData.toString();
         if(left.column() == 1 && emailPattern->indexIn(leftString) != -1)
             leftString = emailPattern->cap(1);

         QString rightString = rightData.toString();
         if(right.column() == 1 && emailPattern->indexIn(rightString) != -1)
             rightString = emailPattern->cap(1);

         return QString::localeAwareCompare(leftString, rightString) < 0;
     }
 }

Хотя я понимаю пример, я не понимаю, где sourceModel объект sourceModel и откуда он появился?

  • 0
    Qt docs говорит о функции sourceModel() : «Возвращает модель, содержащую данные, доступные через модель прокси». Он хранится внутри модели прокси.
  • 0
    Какой базовый класс имеет этот объект?
Показать ещё 4 комментария
Теги:
qt

1 ответ

0
Лучший ответ

Qt сообщает о функции sourceModel():

"Возвращает модель, содержащую данные, доступные через прокси-модель".

Он хранится внутри прокси-модели и является функцией-членом класса QAbstractProxyModel.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню