2016-07-19 2 views
0

私の問題はthis questionとよく似ています。QTreeViewでは、各レベルのスタイルが異なります

私はモデルに接続されたQTreeViewを持っています。異なるレベルでツリーの各レベルをスタイルすることは可能ですか?私は各ラインの背景色を変更する必要があります。異なるレベルは異なる背景を持つでしょう。展開されたアイテムは異なる色を持つことになります。

私はすでにこれを試しましたhttp://doc.qt.io/qt-4.8/stylesheet-examples.html#customizing-qtreeviewこれはcssだけではできないようです。 QProxyStyleさんがお役に立ちましたか?どのように使用されますか?

ありがとう、マーティン。あなたは(QAbstractItemModelまたは類似の由来)カスタムモデルを使用している場合は任意のappearance roleのためのデータが要求されたとき

答えて

0

、あなたはQAbstractItemModel::data()から適切な値を返すことによって、これを達成することができます:あなたが設定することができ

QVariant MyModel::data(const QModelIndex& index, int role) const 
{ 
    switch(role) 
    { 
     case Qt::DisplayRole: 
     { 
      ... 
      break; 
     } 
     case Qt::BackgroundRole: 
      return QColor(Qt::red); 
     case ... 
    } 

    return QVariant(); 
} 

QStandardModelを使用してこれらのロールのデータはQStandardItem::setData()です。

関連する問題