【发布时间】:2010-10-19 14:59:45
【问题描述】:
我尝试基于 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;
}
但我看到错误:'WFlags' 尚未声明
现在我重新编写了我的代码:
class Square : public QWidget
{
Q_OBJECT
public:
Square(QWidget *parent = 0);
};
在 square.cpp 中:
Square::Square(QWidget *parent)
: QWidget(parent)
{
}
但我看到错误:
错误:未定义对 `vtable for Square' 的引用
错误:collect2:ld 返回 1 个退出状态 怎么了?如何声明基于 QWidget 的类的构造函数?
谢谢。
【问题讨论】:
-
这可能是一个错字,但你的参数名称是
fl,你传递给QWidget构造函数的名称是f。 -
重新运行 qmake 看看 vtable 错误是否消失。