You are right that table view is model based and table widget item based.
But internally tablewidget also uses its own model. Its useful when you dont have much to do with your data.
When data is large and needs some customization, table view is helpful.
analyse ur case, if u can use tablewidget, go for it. otherwise table view is there

And you can render progress bar in both i guess. Tablewidget is derived from table view. and you will need to use delegates in this case.

One more thing. You cant set a new model in case of tablewidget