QTableView实时过滤
QTableView real-time filtering
我的情况是这样的:我有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播放列表
创建QSortFilterProxyModel
并立即在函数中销毁它。这是不正确的用法。您需要创建QSortFilterProxyModel的一个对象(可能使用new
),然后调用QTableView::setModel
将代理模型附加到您的视图。在此之后更改将生效。
初始化:
ui->setupUi(this);
my_model = new QStandardItemModel(); // or any other model class
proxy_model = new QSortFilterProxyModel();
ui->table_view->setModel(proxy_model);
proxy_model->setSourceModel(my_model);
In textEdited slot:
proxy_model->setFilterRegExp(arg1);
相关文章:
- 从数据库实时显示QT c++中的数据
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- 有没有办法使用 c++ 实时阅读文本?
- 在本地网络中通过OpenCV(C++)实时流式传输图像
- 将相机数据从服务器实时流式传输到客户端
- 为什么 gcc 会给我可能未初始化的警告 deque::insert 带有过滤范围
- 将实时(非静态)放在qt(c ++)上
- 线程之间的实时数据共享
- 如何在实时应用程序中锁定线程
- 通过C++从目录中过滤特定文件类型
- boost::hana:为什么我无法过滤集?
- OpenCV - 来自相机的实时馈送不流畅
- 如何提高 OpenCV 实时检测器应用程序的帧率?
- Mellanox上的DPDK IPv4流过滤
- 使用 Opencv 将姿势值实时写入文本文件
- Firebase C++ Windows 上的实时数据库连接丢失
- 使用 QT C++过滤大数据的最佳方式
- QTableView实时过滤
- 迷你过滤器驱动程序-我应该过滤哪个IRP请求以进行实时病毒防护
- OpenCV:实时过滤多个帧