【问题标题】:How to filter QSqlRelationaltableModel with PyQt?如何使用 PyQt 过滤 QSqlRelationaltableModel?
【发布时间】:2013-09-10 10:35:41
【问题描述】:

我有以下基于 PyQt 文档的代码:

  model = QSqlRelationalTableModel()
  model.setTable("employee")
  model.setRelation(2, QSqlRelation("city", "id", "name"))
  model.setRelation(3, QSqlRelation("country", "id", "name"))

第三行将把所有城市带到关系中。我如何过滤关系,而不是模型本身?例如,我希望城市有名称 ('X')。

【问题讨论】:

    标签: python qt pyqt qtsql


    【解决方案1】:

    你必须过滤关系引用的模型,但你可以直接调用它;在你的情况下:

        model.relationModel(2).setFilter("city like 'x'");
    

    AFAIK,过滤器正在影响在此关系中实例化的表(模型)的“副本”,它不会影响同一表的任何其他实例。

    事实上,你可以有这样的东西:

        model.setRelation(2, QSqlRelation("city", "id", "name"))
        model.setRelation(4, QSqlRelation("city", "id", "name"))
    
        model.relationModel(2).setFilter("city like 'x'");
        model.relationModel(4).setFilter("city like 'y'");
    

    关系 (2) 和 (4) 指向同一个表,但它们有两个不同的模型,每个模型都有自己的过滤器。

    【讨论】:

      猜你喜欢
      • 2021-03-25
      • 1970-01-01
      • 2019-11-20
      • 2012-12-13
      • 2010-10-10
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多