2010-10-19 64 views
3

我尝试基于QWidget创建自己的构件。在类的构造函数中我有:基于QWidget的Qt构件

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; 
} 

但我看到的错误:'WFlags' 尚未声明

现在我重拍我的代码:

class Square : public QWidget 
{ 
    Q_OBJECT 

    public: 
     Square(QWidget *parent = 0); 
}; 

,并在广场上。 cpp:

Square::Square(QWidget *parent) 
     : QWidget(parent) 
{ 
} 

但我看到错误:

  • 错误:未定义参考`虚表的广场”

  • 错误:collect2:劳工处返回1退出状态 有什么不对?我如何声明基于QWidget的类的构造函数?

谢谢。

+0

这可能是一个错字,但是你的参数名是'fl',你传递给QWidget构造函数的名字是'f'。 – 2010-10-19 15:11:37

+2

重新运行qmake并查看vtable错误是否消失。 – 2010-10-19 15:31:19

+1

请参阅http://stackoverflow.com/questions/2555816/qt-object-linker-problem-undefined-reverence-to-vtable – 2010-10-19 15:35:26

回答