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 に答える