I am using Qt model/view framework. When I reset the data in the model, I have to reset the model to let views update also. How to do it? I found a signal modelReset(QPrivateSignal);
in the QAbstractItemModel, Is this the way to solve it? How to emit the signal? Thanks.
The QAbstractItemModel class provides the abstract interface for item model classes. The QAbstractItemModel class defines the standard interface that item models must use to be able to interoperate with other components in the model/view architecture. It is not supposed to be instantiated directly.
Models. All item models are based on the QAbstractItemModel class. This class defines an interface that is used by views and delegates to access data.
From the official documentation: When implementing a table based model, rowCount() should return 0 when the parent is valid. The same goes for columnCount() . And for completeness, data() should return None if the parent is valid.
You call beginResetModel()
before you reset your data, and then endResetModel()
once you have finished. The endResetModel()
emits the private signal.
As you can see here, the preferred method is to use the beginResetModel()
and endResetModel()
functions surrounding your reset code in your model subclass.
This should handle emitting the signal appropriately.
Some of the qabstractitemmodel subclasses might allow you to use model.removeRows(0,model.rowCount())
(others would require you to implement it yourself)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With