これは私を夢中にさせています。QAbstractItemModel、QSortFilterProxyModel、および QStyledItemDelegate があります。すべてサブクラス化されます。次の dataChanged() を発行した後、QStyledItemDelegate::paint() をこれら 2 つのインデックス (0,0、および 0,1) に対してのみ呼び出す必要があります。ただし、表示されているすべてのセルに対して呼び出されていることを確認しました。
void my_model_t::emit_data_changed()
{
QModelIndex start_ix = createIndex( 0, 0 );
QModelIndex end_ix = createIndex( 0, 1 );
emit( dataChanged( start_ix, end_ix ) );
}
確かに、モデルとプロキシの modelReset() および layoutChanged() シグナルの両方にスロットを接続しました。単純な printf() を実行します。ただし、呼び出されることはありません。ビューやデリゲートでファンキーなことは何もしていないと確信しています。しかし、どこを見ればよいか正確にはわかりません。