I think I've figured out what you're doing wrong :)
What you were supposed to post is exactly the code below, less the correct section. That's all that we need to see to diagnose the issue. Your issue has nothing to do with Qt, etc. Really: minimization is the key. It saves everyone's time. Yours and ours.
#include <vector>
enum Suit { SPADES };
enum Value { ACE, TWO };
class Card {
public:
Card(Suit, Value) {}
};
int main()
{
std::vector<Card> cards;
// Correct
cards.push_back(Card(SPADES, ACE));
cards.push_back(Card(SPADES, TWO));
// Wrong since Suit and Value are not classes nor namespaces,
// they are merely enum tags.
cards.push_back(Card(Suit::SPADES, Value::ACE));
cards.push_back(Card(Suit::SPADES, Value::TWO));
return 0;
}