Невозможно получить доступ или обновить члена класса с ошибкой сегментации - PullRequest
0 голосов
/ 19 марта 2019

Я получаю ошибку ошибки сегментации с приведенным ниже кодом.

Заголовочный файл ниже

#include <QSortFilterProxyModel>
#include <QDateTime>

class TransactionFilterProxy : public QSortFilterProxyModel
{
    Q_OBJECT

public:
    explicit TransactionFilterProxy(QObject *parent = 0);


    static const QDateTime MIN_DATE;

    static const QDateTime MAX_DATE;

    void setDateRange(const QDateTime &from, const QDateTime &to);

protected:
    bool filterAcceptsRow(int source_row, const QModelIndex & source_parent) const;

private:

    QDateTime dateFrom;
    QDateTime dateTo;
};

И файл CPP ниже

#include "transactionfilterproxy.h"
#include "transactiontablemodel.h"
#include <QDateTime>
#include <cstdlib>

const QDateTime TransactionFilterProxy::MIN_DATE = QDateTime::fromTime_t(0);

const QDateTime TransactionFilterProxy::MAX_DATE = QDateTime::fromTime_t(0xFFFFFFFF);

TransactionFilterProxy::TransactionFilterProxy(QObject *parent) :
    QSortFilterProxyModel(parent),
    dateFrom(MIN_DATE),
    dateTo(MAX_DATE)
{

}

bool TransactionFilterProxy::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
{


    QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);

    int type = index.data(TransactionTableModel::TypeRole).toInt();
    QDateTime datetime = index.data(TransactionTableModel::DateRole).toDateTime();

    if( datetime < dateFrom || datetime > dateTo)  //crashes here
        return false;

    return true;
}

void TransactionFilterProxy::setDateRange(const QDateTime &from, const QDateTime &to)
{
    this->dateFrom = from; //crashes here
    this->dateTo = to;
    invalidateFilter();
}

Сбои приложениякогда к членам класса QDateTime был открыт dateFrom .Попытался запустить режим отладки с QTcreator, он показывает ошибку SIGSEGV.Любое предложение было бы замечательно.

...