在我的filterAcceptsRow中定义:
bool File_List_Proxy::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
{
QModelIndex index0 = sourceModel()->index(source_row, 0, source_parent);
return sourceModel()->data(index0).toString().contains(filterRegExp());
}
和正则表达式只是“* .txt”,当我通过fileDialog选择一个扩展名不正确的文件时,这个文件第一次没有显示,但是第二次选择带有txt扩展名的文件时,两个文件都显示在列表显示。这怎么可能?如何解决?
编辑:
void Line_Counter::setup_mvc_()
{
proxy_model_->setSourceModel(model_);//model and proxy were initialized already
QRegExp regex("*.txt");
proxy_model_->setFilterRegExp("*.txt");
regex.setPatternSyntax(QRegExp::Wildcard);
proxy_model_->setFilterRegExp(regex);
listView->setModel(proxy_model_);
listView->setSelectionModel(sel_model_);
}