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 にも同様のオプションがある可能性があります。

列「name」を持つテーブル「fruits」があると仮定すると、次のようなクエリ

SELECT rownum || '. ' || name FROM fruits

トリックを行うでしょう。

もう 1 つのオプションは、次のようにdata()メソッドをサブクラス化QSqlQueryModelしてオーバーロードすることです。

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 に答える