ich hab eine Widget, wo ich ein Rechteck ganz normal zeichnen kann.
Hab versucht, diese auch nach unten, oben, links und rechts zu bewegen.
Aber klappt nicht..
Kann mir jemand helfen??
Hier mein Quellcode:
Spielfeld.hpp
Code: Alles auswählen
#ifndef SPIELFELD_HPP
#define SPIELFELD_HPP
#include <QWidget>
class Spielfeld : public QWidget{
Q_OBJECT
public:
Spielfeld(QWidget *parent = 0);
void paintEvent(QPaintEvent *event);
void keyPressEvent(QKeyEvent *event);
void paintWaffe(QPainter &painter);
int xWaffe;
int yWaffe;
};
#endif
Spielfeld.cpp
Code: Alles auswählen
#include <QPaintEvent>
#include <QPainter>
#include "Spielfeld.hpp"
Spielfeld::Spielfeld(QWidget *parent) : QWidget(parent){
setPalette(QPalette(QColor(250, 250, 200)));
xWaffe = 250;
yWaffe = 150;
}
void Spielfeld::keyPressEvent(QKeyEvent *event){
switch (event->key()) {
case Qt::Key_Down:
yWaffe = yWaffe - 1;
this->repaint();
break;
case Qt::Key_Up:
yWaffe = yWaffe + 1;
this->repaint();
break;
case Qt::Key_Left:
xWaffe = xWaffe - 1;
this->repaint();
break;
case Qt::Key_Right:
xWaffe = xWaffe + 1;
this->repaint();
break;
default:
QWidget::keyPressEvent(event);
}
}
void Spielfeld::paintEvent(QPaintEvent *){
QPainter painter(this);
paintWaffe(painter);
}
void Spielfeld::paintWaffe(QPainter &painter){
painter.setPen(Qt::NoPen);
painter.setBrush(Qt::black);
QRect result(0, 0, 20, 20);
result.moveCenter(QPoint(xWaffe, yWaffe));
painter.drawRect(result);
}