gpt4 book ai didi

QTableView:如何设置搜索列

转载 作者:行者123 更新时间:2023-12-04 06:19:02 27 4
gpt4 key购买 nike

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

谢谢

最佳答案

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

[编辑:]
关于您的评论:您可以使用将任何单元格设置为事件单元格

QTableView* tableView = /* whatever */;
tableView->setCurrentIndex( const QModelIndex& index )

这也将选择单元格。如果你不想那样,你可以这样做
QModelIndex index = /* whatever */;
tableView->selectionModel()->setCurrentIndex( index, QItemSelectionModel::NoUpdate );

如果您有插槽连接到表 View 的 selectionModel() 的 current[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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com