Yes, you have to emit some signals. Emitting layoutChanged() or even reset() might be an option instead of using begin/end*Rows.