这真让我抓狂。我有一个 QAbstractItemModel、QSortFilterProxyModel 和一个 QStyledItemDelegate。都是子类。在发出以下 dataChanged() 之后,应该只为这两个索引(0,0 和 0,1)调用 QStyledItemDelegate::paint()。但是,我已经确认所有可见单元格都调用了它。
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()。但是,它永远不会被调用。我很确定我没有对视图或委托做任何时髦的事情。但是,也不完全确定在哪里看。