计划是为了获得为十六进制视图定制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。
答案 0 :(得分:1)
确保在Q_OBJECT
文件中加入CustomSpinBox.h
宏,然后在项目上运行qmake
以生成moc
个内容。
答案 1 :(得分:1)
你需要moc你的类定义,但它应该自动完成。 您使用qmake编译项目吗?您的类的定义是否在* .h文件中?这个* .h文件是否已添加到项目文件的HEADERS列表中?
或者,如果您不使用属性,元对象或向类添加任何新信号/槽,您可以简单地从类定义中省略Q_OBJECT。