Qt - Q_OBJECT导致对vtable的未定义引用

时间:2016-05-03 11:12:23

标签: c++ qt

我有以下课程:

class MySqlTableModel : public QSqlRelationalTableModel
{
    //Q_OBJECT

public:
    MySqlTableModel();

    QSqlQuery add;
    QSqlQuery login;
    QSqlQuery logout;

    void addUser(QString text);
    virtual Qt::ItemFlags flags(const QModelIndex &index) const;
    bool adding = false;

public slots:
    void loginSlot();
    void logoutSlot();
};

源自QSqlRelationalTableModel。我想使用一些额外的插槽。我的问题是,如果我对Q_OBJECT标记进行评论,则无法识别插槽,也无法连接(QObject::connect: No such slot QSqlRelationalTableModel::MySqlTableModel::loginSlot())。但是,如果我添加Q_OBJECT标记,则会收到错误:/mysqltablemodel.cpp:5: error: undefined reference to vtable for MySqlTableModel',标记我的构造函数:

MySqlTableModel::MySqlTableModel()
{
}

[编辑] 运行qmake解决了编译错误,但是连接仍然无法正常工作。我在这里做错了吗? 谢谢!

0 个答案:

没有答案