【问题标题】:QTableview specify standard search fieldQTableview 指定标准搜索字段
【发布时间】:2015-02-24 10:48:05
【问题描述】:

我有一个QTableView,代码如下。它运行良好,但是当我输入时,搜索字段始终是第一列,即数字和主键。

如何将标准搜索字段更改为另一个字段,例如第二个(名称),即使在名称列上使用 select 列或在名称上使用 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) 

【问题讨论】:

    标签: python qt pyqt pyside qtableview


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-13
      • 2020-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多