QTableView:如何设置搜索列

标签 qt search typing qtableview

我使用 QTableView 和 QAbstractTableModel 的子类作为其模型。 我看到(默认情况下)当用户键入某些内容时,QTableView 开始搜索第一列中键入的文本并将 View 滚动到匹配元素。这是我想要的,但不在第一栏中。 我找不到一种方法来告诉(代码)QTableView 或 QAbstractTableModel 哪个是“搜索列”。 有什么想法吗?

谢谢

最佳答案

QTableView通常在当前具有焦点的列中搜索。只需单击要搜索的列中的单元格并开始输入即可。

[编辑:]
关于您的评论:您可以使用

将任何单元格设置为事件单元格
QTableView* tableView = /* whatever */;
tableView->setCurrentIndex( const QModelIndex& index )

这也将选择单元格。如果你不想这样,你可以这样做

QModelIndex index = /* whatever */;
tableView->selectionModel()->setCurrentIndex( index, QItemSelectionModel::NoUpdate );

如果您有插槽连接到 TableView 的selectionModel()的当前[Row|Column]Changed或selectionChanged信号,您可能需要执行以下操作,具体取决于您的代码:

QTableView* tableView = /* whatever */;
QModelIndex index = /* current row, whatever column you want to search in */;

QItemSelectionModel* selectionModel = tableView->selectionModel();
// probably check for a NULL pointer? - not really sure if this is possible

bool signalsWereBlocked = selectionModel->blockSignals( true );
selectionModel->setCurrentIndex( index );
selectionModel->blockSignals( signalsWereBlocked );

关于QTableView:如何设置搜索列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6840434/

相关文章:

c++ - 如何以预定的时间间隔更新 GUI,同时仍在进行非 GUI 工作?

python - 标量/数组乘法返回任意类型

elasticsearch - ElasticSearch从当前ID获取下一个和上一个文档ID

typescript - 重叠类型的类型定义

python - 与 Python <3.9 的通用 `Future` 类型兼容性

javascript - 找不到 Qt Creator 导入文件

c++ - QDbus:在同一路径上注册多个对象

Qt编译错误位/c++config.h未找到

android - google-play-store 可见性算法或想法有问题

python: TypeError: 无法将 'list' 对象隐式转换为 str