@tmladek You are comparing QVariants that contain QList<Cat>, so you need to provide registered comparison operator for QList<Cat> (or conversions might take place), which you don't do. PS. Also, this: qRegisterMetaType<Cat>("Cat"); should be: qRegisterMetaType<Cat>(); as specifically mentioned in the documentation.