从数据库中检索后,向组合框添加其他文本

时间:2013-06-24 20:03:18

标签: c++ database qt combobox qt-creator

如何为每个组合框选项添加“键”?所以如果下面的代码给了我一个组合框:

苹果

柠檬

樱桃

香蕉

芒果

QSqlQuery query;
QStringList Columns;
query.prepare(" SELECT * "
              " FROM \"incdt_systemType\" ");
query.exec();
query.first();
_SQLQuerymodel->setQuery(query);
ui->_version->setModel(_SQLQuerymodel);
ui->_version->setModelColumn(_SQLQuerymodel->record().indexOf("incdt_systemtype_code"));

我如何在它前面添加1.,2.,3.,4.,5?

因此最终结果将是一个组合框显示:

  1. 苹果
  2. 莱昂
  3. 樱桃
  4. 香蕉
  5. 芒果

1 个答案:

答案 0 :(得分:0)

您可能已经可以通过查询执行此操作。我只能提供Oracle SQL语法,但其他DBMS可能有类似的选项:

假设你有一个带有“name”列的表“fruits”,那么就像

这样的查询
SELECT rownum || '. ' || name FROM fruits

会做到这一点。

另一个选择是子类QSqlQueryModel并重载data()方法,如下所示:

QVariant MyOwnSQLQueryModel::data(const QModelIndex & item, int role ) const
{
    if( role == Qt::DisplayRole && item.column() == _nameColumnIndex )
    {
        return QString( "%1. %2" )
               .arg( item.row() )
               .arg( QSqlQueryModel::data( item, role ) );
    }
    // else: default behaviour
    return QSqlQueryModel::data( item, role );
} 
相关问题