This is a leak/bug. Leak: A pointer to an object has been removed from the list and the object still exists and utilizing the memory (bug: and may even still doing some tasks).
This is not a prefered approach and there are better ways of doing it. As Qt mentions in the document:
QAbstractItemModel Subclass A model can be defined by subclassing QAbstractItemModel. This is the best approach if you have a more complex model that cannot be supported by the other approaches. A QAbstractItemModel can also automatically notify a QML view when the model data changes.
Please consider changing the instance name to hd_simulator. The name of variables is always important, especially in this case which makes it confusing since the name of the class and the variable are the same.
Tx_States violates the CapWords convention for classes as per our coding standard, as no underscores should be present between words in a class name. TreatmentStates is clearer than TxStates. Tx could easily be confused with transmit...