これはQtでも可能ですか?特定の描画用のデリゲートを使用して QListWidget をセットアップしましたが、QListWidget の親の変数に基づいてデリゲートを別の方法で描画しようとしています。どちらかへのポインターがある限り、何かを装備できると思いますが、デリゲートの paint() 内で何らかの方法でそれらを取得する必要があります。
QVariant にポインターを格納するために「ハック」を試みましたが、機能していないようで、このアプローチを採用したくありません。デリゲートが表すアイテムへのポインターを取得でき、item->listWidget() を呼び出すだけでよいのであれば、これは完璧ですが、デリゲート内では不可能のようです。
これを達成するための回避策はありますか?
また、単に.. void* トリックを機能させようとするサンプル - これがこれを行う唯一の方法である場合、おそらく誰かが私が間違っていることに気付くかもしれません。
//Parent of QListWidget
....
QListWidgetItem *item = new QListWidgetItem();
....
QVariant v = qVariantFromValue((void *) pStitchSymbolCustom);
item->setData(Qt::UserRole + 6, v);
....
//Implemented QAbstractItemDelegate
....
MyClass* p_pointer =
(MyClass*)(index.data(Qt::UserRole + 6).value<void *>());