在示例中,我想通过在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);
}
答案 0 :(得分: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))
}
}