python - QTableview指定标准搜索字段

标签 python qt pyqt pyside qtableview

我有一个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/

相关文章:

python - if, elif 和 else.. 优先级和链

c++ - Qt double spin box 在处理值改变时自动填充

c++ - Windows 消息循环而不是 QApplication::exec()/QApplication::processEvents()

python - 在 QImage 上绘制矩形而不显示它

python - 用于橡皮筋的鼠标左键和用于平移 PYQT 的中间键

python - 强化学习 - 当游戏的输入只有像素时,我们如何决定对代理的奖励?

python - 如何在 Chainer 中测量每层的时间

python - 将连续相似的项目分组到 python 列表中

c++ - 我可以(应该)将我的 DBClientConnection 用作全局变量吗?

python - 将小部件添加到 qtablewidget pyqt