-1

QTreeView の特定のセル内に QComboBox を表示したいと考えています。独自のモデルを使用する必要があることはわかっています。セルに表示されている QIcons を使用すると、すべてが既に正常に機能していますが、コンボボックスで同じことを行うことができません。それが私のモデルの外観です(いくつかの不完全な擬似コード):

QVariant MyListModel::data(const QModelIndex &index, int role) const
{
   ...

   switch(role)
   {
      ...
      case Qt::DecorationRole:
         switch(index.column())
         {
            case eBLA:
               // return QIcon(); --> compiles properly
               return m_placePosCombos[index.row()]; --> compilation fails
               return QComboBox(); --> compilation fails
               break;
            default:

QComboBox を返そうとするとすぐに、コンパイル エラーが発生します。

cannot convert from 'const QComboBox' to 'QVariant'

MyListModel は QAbstractListModel を継承しています。

愚かなアイコンの代わりに QComboBox を使用するために何をしなければならないか考えていますか?

ありがとう!

4

1 に答える 1

2

いいえ、モデルはビュー内のデータ ハンドル専用であり、ビューを変更するためのものではありません。学習して使用する必要があります:QItemDelegate(ここにすべてのコードを表示できなくて申し訳ありません。そのための場所と時間が必要です...チュートリアルと関連ドキュメントを読む必要があるかもしれない時間...助けてくれることを願っています)

QItemDelegate のチュートリアル

QItemDelegate API クラス Qt5

于 2016-08-17T06:55:04.633 に答える