15-记录过滤
11.2.9 记录过滤
QSqlTableModel的setFilter()函数设置记录过滤条件,实际上就是设置了SQL语句里的WHERE字句。
实例里演示针对Gender字段设置字段过滤条件,窗口界面上“数据过滤”分组框里有3个RadioButton,分别为“男”“女”“全显示”,3个按钮的clicked()信号的槽函数实现代码如下:
void MainWindow::on_radioBtnMan_clicked()
{
tabModel->setFilter(" Gender='男' ");
}
void MainWindow::on_radioBtnWoman_clicked()
{
tabModel->setFilter(" Gender='女' ");
}
void MainWindow::on_radioBtnBoth_clicked()
{
tabModel->setFilter("");
}
调用setFilter()后无需调用select()函数就可以立即刷新记录,若要取消过滤条件,只需在setFilter()函数里传递一个空字符串。