Code: Alles auswählen
#ifndef QUNIT_H
#define QUNIT_H
#include <QtGui>
#include <iostream>
class QGraphicsSceneMouseEvent;
class QUnit : public QGraphicsItem
{
Q_OBJECT
private:
int unit_size;
//QColor unit_color;
QList<QPointF> *motion_buffer;
QTimer *motion_timer;
void connector();
public:
QUnit(QGraphicsItem *parent = 0, int size = 20);
//~QUnit();
QRectF boundingRect() const;
QPainterPath shape() const;
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
QList<QPointF> *last_pos();
QList<QGraphicsItem*> check_collision();
public slots:
void setMotionBuffer();
protected:
//QVariant itemChange(GraphicsItemChange change, const QVariant &value);
void mousePressEvent(QGraphicsSceneMouseEvent *event);
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
};
#endif Code: Alles auswählen
QUnit::QUnit(QGraphicsItem *parent, int size) : QGraphicsItem(parent)
{
setFlags(ItemIsSelectable | ItemIsMovable); //item will be drag and drop'able
motion_buffer = new QList<QPointF>;
motion_timer = new QTimer;
QUnit::connector();
unit_size = size;
}
void QUnit::connector()
{
QObject::connect(motion_timer, SIGNAL(timeout() ), this, SLOT(setMotionBuffer() ) );
motion_timer->start(100);
}
void QUnit::setMotionBuffer()
{
std::cout<<"set new unit position"<<std::endl;
motion_buffer->append(this->pos() );
}
...
Code: Alles auswählen
error: no matching function for call to ‘QObject::connect(QTimer*&, const char [11], QUnit* const, const char [19])’