继承我想一个信号添加到从QGraphicsScene
继承的类。添加信号类,从QGraphicsScene
signals:
void update(std::vector< std::vector<int> > board);
当我这样做时,Qt Creator警告我忘记了Q_OBJECT
宏。但在某处我读到,因为QGraphicsScene
不从QObject
继承,我不应该把它放在我的类定义中。但是信号需要这个宏。
怎样的信号添加到不从QObject
继承一个类?
boardgui.h
#ifndef BOARDGUI_H
#define BOARDGUI_H
#include <QGraphicsView>
#include <QGraphicsScene>
class BoardGUI : public QGraphicsScene
{
Q_OBJECT
public:
BoardGUI(QGraphicsView*& view, int dimension);
~BoardGUI();
void buildBoard();
signals:
void update(std::vector< std::vector<int> > board);
private:
int dimension;
QGraphicsView* view;
};
#endif // BOARDGUI_H
所以我应该可以添加宏吗?如果我这样做,我会得到这些编译器错误:http:// img29。imageshack.us/img29/7995/errorsv.jpg什么是vtable? – Pieter 2010-11-10 19:02:21
我做了一些研究......如果vtable出现错误,那么运行时绑定必然会出错。 – Pieter 2010-11-10 19:12:01
确保在进行此类更改后进行全面清理并重建。我曾经看到QtCreator在错误地缓存了一些关于什么有信号和什么没有信号的旧信息时会感到困惑。另外,请确保.pro文件的标题部分是正确的,并研究moc的行为如何确保您的.pro文件能够满足需要。 – wrosecrans 2010-11-10 19:12:13