Delegates are attached to a table view, not to the model.

The QAbstractItemDelegate::createEditor() method supplies the QModelIndex as an argument. It will contain row and column (0,0) in both cases, but no information about which table is asking for the editor. So if you put all of the code for managing the editors into one class, you will have no way to determine which editor to create. Even if you use different editors for different rows or columns in the various view, your code still has no way to determine which table view is being edited, so you'll end up creating the wrong editors.

If you are asking, should you put the code for all of the delegate classes into the same source files, the answer is no. That's just a bad coding practice. If you make a change to one delegate class, then every table view will class will have to recompile even if it doesn't use the delegate that was changed.