自定义QSpinBox - >不可编译

时间:2011-12-07 14:20:47

标签: visual-studio-2010 qt visual-c++ custom-controls

计划是为了获得为十六进制视图定制QSpinBox的可能性。我在互联网上找到了一些例子,并用我自己的版本尝试了自己。每次我得到类似的链接器错误。由于我不是QT专家,我希望有人可以提供帮助:

错误:

1>CustomSpinBox.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall CustomSpinBox::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@CustomSpinBox@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
1>CustomSpinBox.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall CustomSpinBox::qt_metacast(char const *)" (?qt_metacast@CustomSpinBox@@UAEPAXPBD@Z)
1>CustomSpinBox.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall CustomSpinBox::metaObject(void)const " (?metaObject@CustomSpinBox@@UBEPBUQMetaObject@@XZ)

以下是我找到的示例代码。

https://bitbucket.org/megazig/megagecko/src/c20ec5e7003c/src/qhexspinbox.h

https://bitbucket.org/megazig/megagecko/src/c20ec5e7003c/src/qhexspinbox.cpp

我的版本更容易一些。我只有这个CustomSpinBox类,我希望通过QT Designer的促销功能进行集成。问题是我甚至无法编译这个课......请帮忙......

我正在使用QT 4.7.4和Visual C ++ 2010,这些错误来自Visual Studio。

2 个答案:

答案 0 :(得分:1)

确保在Q_OBJECT文件中加入CustomSpinBox.h宏,然后在项目上运行qmake以生成moc个内容。

答案 1 :(得分:1)

你需要moc你的类定义,但它应该自动完成。 您使用qmake编译项目吗?您的类的定义是否在* .h文件中?这个* .h文件是否已添加到项目文件的HEADERS列表中?

或者,如果您不使用属性,元对象或向类添加任何新信号/槽,您可以简单地从类定义中省略Q_OBJECT。