QTreeWidgetクラスはQTreeWidgetItemからQModelIndexを取得するindexFromItem( item, column )というメンバ関数を持っていますが、これがprotectedで宣言されており、継承したクラスでないと使えないという仕様になっています。QTreeWidgetを使っていると各アイテムにWidgetをセットするためにQModelIndexを取得したいことが結構あり、publicにこのメンバ関数にアクセスできないのはとても不便なので、QTreeWidgetのメンバ関数にpublicでindexFromItemのラッパー関数を定義しておくと便利です。
class TreeWidgetSample
: public QTreeWidget
{
public:
TreeWidgetSample(QWidget *parent=NULL)
: QTreeWidget(parent)
{}
QModelIndex indexFromItem( QTreeWidgetItem * item, int column = 0 ) const
{
return this->QTreeWidget::indexFromItem( item, column );
}
};