Но мне нужно - что если фильтр пустой отображать всю таблицу без выделения цветом.
Ну вы можете проверять попадает ли строка под фильтр, тем же самым кодом, что у вас в filterAcceptsRow, но до установки фильтра.
Да я проверяю делаю так
C++ (Qt)
bool DataBaseFilterModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
{
int column = filterKeyColumn();
if(column == 0){
if(strFilter_0.isEmpty()){
return true; // если здесь true не будет то я всю таблицу не увижу !!!
}
else{
QModelIndex index = sourceModel()->index(source_row,column,source_parent);
QVariant value = sourceModel()->data(index,Qt::DisplayRole);
if(value.isValid()){
int date = value.toInt();
int filter = strFilter_0.toInt();
return date == filter;
}
}
}
}
bool DataBaseFilterModel::updateFilterColumn_0(QString string)
{
strFilter_0.clear();
strFilter_0.append(string);
setFilterKeyColumn(0);
invalidateFilter();
}