首页 > 解决方案 > QSqlTableModel setFilter 参数太多

问题描述

我正在尝试将一个信号分配给一个按钮,以便它调用一个过滤并在 tableView 上显示特定数据的函数。但是当我点击按钮时它说:

Type error: setFilter(self, str) too many arguments

并且应用程序崩溃

分配信号

self.ui.pushButton.clicked.connect(lambda : self.search(self.ui.lineEdit.text()))
def search(self,item):
    item = "%" + item + "%"
    self.model.setFilter('name LIKE ?',(item,))

    self.model.select()

但是当没有其他参数但它起作用selfsearch()

self.model.setFilter('name LIKE "John" ')

标签: pythonpyqtpyqt5qsqltablemodel

解决方案


setFilter() 不接受占位符,因此您只需连接:

def search(self,item):
    self.model.setFilter("name LIKE '%{}%'".format(item))
    self.model.select()

推荐阅读