首页 文章

qml扩展名上的未定义符号(来自示例)

提问于
浏览
0

我正在尝试从qt(使用qt creator 3.5.1,从qt 5.5.1)改编一个简单的例子来创建一个新的qml类型 . 这是一个琐碎的新类型:

class Person : public QObject
{
    Q_OBJECT
    Q_PROPERTY(QString name READ name WRITE setName)
    Q_PROPERTY(int shoeSize READ shoeSize WRITE setShoeSize)
public:
    Person(QObject *parent = 0): QObject(parent), m_shoeSize(0) {}

    QString name() const { return m_name; }
    void setName(const QString & name) { m_name = name; }

    int shoeSize() const { return m_shoeSize; }
    void setShoeSize(int s) { m_shoeSize = s; }

private:
    QString m_name;
    int m_shoeSize;
};

当我尝试注册时:

qmlRegisterType<Person>("People", 1,0, "Person");

我明白了

体系结构x86_64的未定义符号:“Person :: qt_metacall(QMetaObject :: Call,int,void **)”,引自:main.o中的QQmlPrivate :: QQmlElement的vtable“Person :: qt_metacast(char const *)” ,引自:......

我想我需要在.pro文件中添加一个“库”,但我不知所措 . 有任何想法吗?

我已经有以下内容:

QT += core qml quick widgets

1 回答

  • 0

    正如tpr所建议的那样:该示例在单独的.h / .cpp文件中包含Person . 当我这样做时,程序成功编译 . 没想到 .

相关问题