当前位置: 代码迷 >> QT开发 >> 自定义类的Q_OBJECT使用,该如何处理
  详细解决方案

自定义类的Q_OBJECT使用,该如何处理

热度:36   发布时间:2016-04-25 04:32:46.0
自定义类的Q_OBJECT使用
在下通过QT Creat建立了一个只有一个mainwindow界面的工程。之后,在该工程的.h文件中添加自定义类。
.h文件全文如下:
[code=C/C++][/code]
#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度跪谢!


------解决方案--------------------
呵呵 问题是LZ没在.cpp中写MyEditline::~MyEditline()这个析构函数,加上去就可以了