2014-12-27 54 views
2

我有一个QTableView下面的代码。它运行良好,但是当我输入时,搜索字段总是第一列,它是数字和主键。QTableview指定标准搜索字段

如何更改标准搜索字段是另一个字段,例如第二个(名称),即使在名称列上选择列,或者在输入第一个数字字段时使用名称上的标准搜索进行setsort?

当代码运行时,我可以通过在第二列中单击鼠标左键来更改搜索列,但我希望通过编程实现此目的。

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) 

回答

2

您需要更改指标如下:

# index: the index of a cell in the desired column 
index = tableView.model().index(0, 1) 
tableView.selectionModel().setCurrentIndex(index, QItemSelectionModel.NoUpdate);