自定义类的Q_OBJECT使用

yyddddmw 2012-09-04 04:41:12
在下通过QT Creat建立了一个只有一个mainwindow界面的工程。之后,在该工程的.h文件中添加自定义类。
.h文件全文如下:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QObject>
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();

private:
Ui::MainWindow *ui;
};
class MyEditline :public QObject
{
Q_OBJECT
public:
explicit MyEditline(QObject *parent=0);
~MyEditline();
protected:
virtual void keyPressEvent ( QKeyEvent *);
virtual void keyReleaseEvent ( QKeyEvent *);
signals:
};

#endif // MAINWINDOW_H

但是链接时出现debug/moc_mainwindow.o:moc_mainwindow.cpp:(.rdata$_ZTV10MyEditline[vtable for MyEditline]+0x14): undefined reference to `MyEditline::~MyEditline()'
错误。
之后根据网上的资料,将工程目录下的所有makefile文件全部删除,XX-build-desktop文件夹也删除。
再运行qmake -project之后重新编译,还是同样的错误。
望哪位大侠不惜赐教
360度跪谢!
...全文
465 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dinjay 2012-09-05
  • 打赏
  • 举报
回复
LS+1
析构函数需要实现。
yyddddmw 2012-09-05
  • 打赏
  • 举报
回复
恩,我也发现了这个问题。。。。现在问题解决了。。多谢了
  • 打赏
  • 举报
回复
LZ没子.cpp写MyEditline::~MyEditline()这个析构函数,加上去就行了
  • 打赏
  • 举报
回复
呵呵 问题是LZ没在.cpp中写MyEditline::~MyEditline()这个析构函数,加上去就可以了

16,173

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧