2

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

苹果

柠檬

樱桃

香蕉

芒果

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. 芒果
4

1 回答 1

0

您可能已经可以通过查询来做到这一点。我只能提供 Oracle SQL 语法,但其他 DBMS 可能有类似的选项:

假设您有一个表“fruits”,其中有一列“name”,那么查询如下

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 );
} 
于 2013-06-25T06:18:15.570 回答