The third argument of QAbstractItemModel::setHeaderData() is a QVariant, not a QObject.

QObject::tr() obviously does not return a QObject because it returns a QString and a QString is not a QObject.

Is this model your own model class from the other thread or is this a standard model?
If it is you model, why don't you simply make headerData() return the values that you want?

Cheers,
_