Пользовательский QSpinBox -> не компилируется - PullRequest
0 голосов
/ 07 декабря 2011

План состоит в том, чтобы получить возможность настроить 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)

Вот пример кода, который я нашел.1009 *

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

Моя версия немного проще.У меня есть только этот класс CustomSpinBox, который я хотел интегрировать с помощью функции продвижения QT Designer.Проблема в том, что я даже не могу скомпилировать этот класс ... Пожалуйста, помогите ...

Я использую QT 4.7.4 с Visual C ++ 2010, и эти ошибки происходят из Visual Studio.

Ответы [ 2 ]

1 голос
/ 07 декабря 2011

Вам нужно изменить определение класса, но это должно быть сделано автоматически. Вы используете qmake для компиляции своего проекта? Определение вашего класса в * .h файле? Этот * .h файл добавлен в список HEADERS в вашем файле проекта?

В качестве альтернативы, если вы не используете свойства, метаобъекты или не добавляете какие-либо новые сигналы / слоты в свой класс, вы можете просто пропустить Q_OBJECT из определения класса.

1 голос
/ 07 декабря 2011

Убедитесь, что вы включили макрос Q_OBJECT в файл CustomSpinBox.h, а затем запустите qmake в своем проекте, чтобы получить сгенерированный контент moc.

...