python - 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()
但是当没有其他参数但它起作用self
时search()
self.model.setFilter('name LIKE "John" ')
解决方案
setFilter() 不接受占位符,因此您只需连接:
def search(self,item):
self.model.setFilter("name LIKE '%{}%'".format(item))
self.model.select()
推荐阅读
- ruby-on-rails - Rails 生产控制台中没有控制台颜色
- genexus - 如何使用逗号分隔符“,”而不是“。” 十进制的genexus值?
- spss - 为什么我的语法无法计算新变量?
- ansible - Ansible:如何从 YAML 中的 JSON 响应中提取嵌套字典值
- shell - 在 shell 脚本中访问 cpp #define 预处理器变量?
- java - onActivityResult 返回值太晚
- json - Spring Boot 控制器建议 - 如何返回 XML 而不是 JSON?
- c++ - 从 std::string 对象到 char* 的显式转换,而不使用任何 std::string 成员函数
- ios - 适用于 App Store 和 Google Play 的 Unity IAP 和出口合规性
- git - “git push”和“拉取请求”有什么区别?