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

标签 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. 芒果

最佳答案

您也许已经可以通过查询来做到这一点。我只能提供 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 );
} 

关于c++ - 从数据库中检索后向组合框添加其他文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17284078/

相关文章:

java - 本地存储的数据库

python - Qt:QPushButton 被子进程阻塞

c++ - 将类型分配给 typename 关键字

c++ - 两个类之间的循环引用

c++ - 指向成员函数的指针的问题

c++ - 使用 QT 的周期性代码

c++ - 向 Q_Object 构造函数添加参数

c++ - 二叉树中的最小路径和

java - c3po 辅助线程会死锁

sql - 通过魔法表建立关系