Comment créer un délégué pour QTreeWidget?

Voici ce que je suis en train de faire (tous les parents et les enfants doivent avoir un près bouton sur la droite, dans l'avenir, que le planait article sera en mesure de montrer l' **fermer ** bouton):

Comment créer un délégué pour QTreeWidget?

Mon délégué code:

class CloseButton : public QItemDelegate
{
     Q_OBJECT

public:
     CloseButton( QObject* parent = 0 )
          : QItemDelegate( parent )
     {};

     QWidget* createEditor( QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index ) const
     {
          if ( index.column() == 1 )
          {
               QToolButton* button = new QToolButton( parent );
               button->setIcon( QIcon( CLOSE_ICON ) );
               //button->setFixedSize( 16, 16 );
               //button->setAutoRaise( true );
               //button->setVisible( true );

               CONNECT( button, SIGNAL( clicked() ), this, SLOT( emitCommitData() ) );

               return button;
          }
          return ( new QWidget );
     }

private slots:
     void emitCommitData()
     {
          emit commitData( qobject_cast< QWidget* >( sender() ) );
     }

private:
     //Q_DISABLE_COPY( CloseButton );
};

Avec QTreeWidget code de connexion:

recipientsView()->setItemDelegateForColumn( 1, new CloseButton( this ) );

recipientsView() est un simple QTreeWidget.

Problème est que QToolButtons ne sont pas visibles (il doit être dans la deuxième colonne, c'est à dire un index de colonne dans l'arborescence de la 1). Ce que je fais mal?

J'ai déjà contrôlé tous les Qt démo exemples sur les délégués et les premiers résultats sur Google à propos de QItemDelegate's et les trucs similaires.

source d'informationauteur mosg