J'essaie de créer mon propre widget basé sur QWidget. Dans le constructeur de la classe j'ai:Qt widget basé sur QWidget
Square(QWidget *parent = 0, const char *name = 0, WFlags fl = 0);
Square::Square(QWidget *parent = 0, const char *name = 0, WFlags fl)
: QWidget(parent, name, f)
{
if (!name)
setName("Game");
reset();
underMouse=false;
}
Mais je vois l'erreur: 'wFlags' n'a pas été déclaré
Maintenant, je refait mon code:
class Square : public QWidget
{
Q_OBJECT
public:
Square(QWidget *parent = 0);
};
et sur la place. cpp:
Square::Square(QWidget *parent)
: QWidget(parent)
{
}
Mais je vois l'erreur:
erreur: référence non défini à `vtable pour la place »
erreur: collect2: ld retourné 1 état de sortie Qu'est-ce qui ne va pas? Comment puis-je déclarer constructeur de la classe basée dans QWidget?
Merci.
Il s'agit probablement d'une faute de frappe, mais le nom de votre paramètre est 'fl' et le nom que vous transmettez au constructeur QWidget est' f'. –
Réexécutez qmake et voyez si l'erreur vtable disparaît. –
Voir http://stackoverflow.com/questions/2555816/qt-object-linker-problem-undefined-reverence-to-vtable –