繼承我想一個信號添加到從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