0

在示例中,我想通过在 sectionComboBox 中进行选择来过滤 rsModel 中包含的数据。在 sectionComboBox 中,我显示了一个部分的名称,并希望将 rsModel 过滤为具有匹配 SECTION_ID 的条目

ComboBox {
        id: sectionComboBox
        model: sectionModel
        textRole: "NAME"
        onCurrentTextChanged: rsModel.setQLFilter("SECTION_ID=" + ??)
    }

QLTableModel 子类 QSqlRelationalTableModel 并实现 setQLFilter

void QLSqlTableModel::setQLFilter(const QString filter){
  setFilter(filter);

}

4

1 回答 1

1

这是似乎有效的代码。请提出您可能会看到的任何改进。

QLSqlTableModel.cpp(源自 QSqlRelationTableModel)

void QLSqlTableModel::setQLFilter(const QString & field, int value){
  QString tempString = field + QString::number(value);
  setFilter(tempString);
}


QVariant QLSqlTableModel::data(int row, int role) const {
    QModelIndex qmi;
    qmi = index(row, role, qmi);
    return data(qmi, role);
}

main.qml

ComboBox {
    id: sectionComboBox
    model: sectionModel
    textRole: "NAME"
    onCurrentIndexChanged: {
        rsModel.setQLFilter("SECTION_ID=", sectionModel.data(currentIndex, 0))
    }
}
于 2013-11-05T19:08:32.673 回答