我有一个QTableView
,其代码如下。它运行良好,但当我输入时,搜索字段始终是第一列,即数字和主键。
如何更改标准搜索字段为另一个字段,例如第二个(名称),即使在名称列上选择列或在名称上设置排序,键入时的标准搜索也是第一个数字字段?
当代码运行时,我可以通过左键单击第二列来更改搜索列,但我想以编程方式实现此目的。
class KL_browse(QDialog, ui_kl_browse.Ui_kl_browse):
def __init__(self):
super(KL_browse, self).__init__()
query = QSqlQuery()
query.exec_("""SELECT * FROM klanten""")
self.setupUi(self)
self.model = QSqlTableModel(self)
self.model.setTable("klanten")
self.model.setSort(1, Qt.AscendingOrder)
self.model.select()
self.tableView.setModel(self.model)
self.tableView.setSelectionMode(QTableView.SingleSelection)
self.tableView.setSelectionBehavior(QTableView.SelectRows)
# self.view.setColumnHidden(ID, True)
self.tableView.horizontalHeader().setSectionsMovable(True)
self.tableView.horizontalHeader().setDragEnabled(True)
self.tableView.horizontalHeader().setDragDropMode(QAbstractItemView.InternalMove)
self.tableView.horizontalHeader().setSortIndicator(1,0)
self.tableView.selectRow(0)
self.tableView.selectColumn(1)
最佳答案
您需要按如下方式更改索引:
# index: the index of a cell in the desired column
index = tableView.model().index(0, 1)
tableView.selectionModel().setCurrentIndex(index, QItemSelectionModel.NoUpdate);
关于python - QTableview指定标准搜索字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27668721/