QTableview指定标准搜索字段

时间:2014-12-27 15:34:31

标签: python qt pyqt pyside 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) 

1 个答案:

答案 0 :(得分:2)

您需要按如下方式更改索引:

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