c++ - 无法访问或更新具有分段错误的类成员
问题描述
我一直在使用以下代码收到分段错误错误。
头文件在下面
#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 错误。任何建议都会很棒。
解决方案
推荐阅读
- android - python中的getchar返回权限被拒绝(andorid 8.0)
- android - 将位图设置为背景并裁剪
- java - 在 Java 中进行不自动增量的批量插入
- javascript - html2pdf 库返回空白字段
- java - 如何在使用 Plexus Archiver 和 Apache Maven 制作的 java 项目中编辑一些硬编码密钥
- jdbc - Confluent:加载连接器后未创建主题
- visual-studio-2017 - ilmerge.internalize.exclude.txt 文件有什么作用?
- postgresql - Postgresql 使用 where 子句选择视图太慢
- arrays - PHP - 函数前的方括号
- github - 带有 Github 页面的 Jekyll 产品组合