• 5352阅读
  • 3回复

子类化QSqlTableModel遇到undefined reference to `vtable for **‘的问题 [复制链接]

上一主题 下一主题
 

只看楼主 正序阅读 楼主  发表于: 2011-08-30
各位帮忙看一下,自定义的内容通通去掉了,出错~~~代码如下
class mySqlTableModel : public QSqlTableModel
{
    Q_OBJECT
public:
    mySqlTableModel(QObject *parent = 0, QSqlDatabase db = QSqlDatabase());
    ~mySqlTableModel();
};

mySqlTableModel::mySqlTableModel(QObject *parent, QSqlDatabase db)
        : QSqlTableModel(parent, db)
{
}
调用类:
mySqlTableModel *model = new mySqlTableModel(ui->tableView,db);
model->setTable(SQLtable);
model->select();

出错信息:
mysqltablemodel.o: In function `mySqlTableModel::mySqlTableModel(QObject*, QSqlDatabase)':
mysqltablemodel.cpp:(.text+0x3e): undefined reference to `vtable for mySqlTableModel'
mysqltablemodel.o: In function `mySqlTableModel::mySqlTableModel(QObject*, QSqlDatabase)':
mysqltablemodel.cpp:(.text+0x9e): undefined reference to `vtable for mySqlTableModel'
collect2: ld returned 1 exit status
离线wxj120bw

只看该作者 3楼 发表于: 2011-09-01
回 2楼(风吹过夏天) 的帖子
你这样尝试 在mysqltablemodel.cpp 添加#include "moc_mysqltablemodel.cpp" 别忘了加了Q_OBJECT 还有清空再编译

只看该作者 2楼 发表于: 2011-09-01
回 1楼(wxj120bw) 的帖子
这个没描述清楚,我是分成h和cpp编译的,后来发现去掉Q_OBJECT编译就通过了,不太明白什么原因
离线wxj120bw

只看该作者 1楼 发表于: 2011-08-30
回 楼主(风吹过夏天) 的帖子
将mySqlTableModel类的定义和实现函数分成h和cpp 然后重新编译下
快速回复
限100 字节
 
上一个 下一个