Несколько другой пример собственного фильтра... Просто и наглядно... Выбираются строки, где дата находится в нужном диапазоне.... Разобрался что как работает и вот решил свой пример выложить... Может кому и понадобится.... Сделал так:
#ifndef MYDATEFILTERPROXYMODEL_H
#define MYDATEFILTERPROXYMODEL_H
#include<QDate>
#include<QSortFilterProxyModel>
class MyDateFilterProxyModel: public QSortFilterProxyModel
{
    Q_OBJECT
public:
    MyDateFilterProxyModel(QObject *parent = 0);
private:
    int m_nFilterIndex;
    QDate m_dtMinDate;
    QDate m_dtMaxDate;
protected:
    bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const;
public:
    void setFilterIndex(int nIndex)
    {
        m_nFilterIndex = nIndex;
    }
    void setMinDate(QDate date)
    {
        m_dtMinDate = date;
    }
    void setMaxDate(QDate date)
    {
        m_dtMaxDate = date;
    }
};
#endif // MYDATEFILTERPROXYMODEL_H
И, собсна, сама реализация...
#include "mydatefilterproxymodel.h"
MyDateFilterProxyModel::MyDateFilterProxyModel(QObject *parent):
    QSortFilterProxyModel(parent)
{
}
bool MyDateFilterProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
{
    QModelIndex idx = sourceModel()->index(source_row, m_nFilterIndex, source_parent);
    return (sourceModel()->data(idx).toDate() >= m_dtMinDate)
                && (sourceModel()->data(idx).toDate() <= m_dtMaxDate);
}
Далее создастся диалог ввода дат фильтра... и будет обрабатываться так:
    m_pDateFilterModel = new MyDateFilterProxyModel(this);
    m_pDateFilterModel->setSourceModel(m_pTableModel);
    m_pDateFilterModel->setFilterIndex(m_pTableModel->fieldIndex("dt_date"));
    m_pDateFilterModel->setMinDate(QDate(2011, 10, 01));//Дата из дилога
    m_pDateFilterModel->setMaxDate(QDate(2011, 10, 31));//Дата из дилога
Просто и доступно....  

 Мот пригодится....