2014-12-27 86 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);