【发布时间】:2013-06-11 21:30:50
【问题描述】:
我的情况是这样的:我有 QTableView 和 LineEdit。我想实时显示 LineEdit 中包含值的数据。我想我应该使用 QSortProxyFilterModel,但我不知道该怎么做。我是这样写的:
void MainWindow::on_lineFind_textEdited(const QString &arg1)
{
QSortFilterProxyModel proxy;
proxy.setSourceModel(ui->tableView->model());
proxy.setFilterRegExp(arg1);
QModelIndex index=proxy.mapToSource(proxy.index(0,0));
if(index.isValid())
{
ui->tableView->selectionModel()->select(index,QItemSelectionModel::Select | QItemSelectionModel::Rows);
ui->tableView->scrollTo(index,QAbstractItemView::EnsureVisible);
}
}
但它不起作用(没有可见的变化)。工作原理示例:Clementine Player 播放列表。
【问题讨论】:
-
为什么要使用硬编码的索引坐标?
QModelIndex index=proxy.mapToSource(proxy.index(0,0));
标签: c++ qt filtering qtableview