Witam,
pokaże Ci jak przykładowo stworzyć taki kody, który chcesz. Tak na zachęte
#include <QApplication>
#include <QObject>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QKeyEvent>
#include <QPainter>
#include <QGraphicsPixmapItem>
#include <QDebug>
class Item: public QObject, public QGraphicsPixmapItem
{
public:
void keyPressEvent(QKeyEvent *event);
// QGraphicsItem interface
public:
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
};
void Item::keyPressEvent(QKeyEvent *event)
{
if(event->key() == Qt::Key_Left)
{
qDebug() <<"klikniecie lewej strzałki";
}
QGraphicsPixmapItem::keyPressEvent(event);
}
void Item::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
painter->setBrush(QBrush(Qt::red));
painter->drawRect(QRectF(0,0,20,20));
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QGraphicsView *view = new QGraphicsView();
QGraphicsScene *scene = new QGraphicsScene();
scene->setSceneRect(QRectF(0,0,800,600));
view->setScene(scene);
Item* myItem = new Item();
myItem->setPos(200, 200);
myItem->setFlag(QGraphicsItem::ItemIsFocusable);
myItem->setFocus();
scene->addItem(myItem);
view->show();
return a.exec();
}
Tak na początek:
1) Musisz poprawić dołączanie bibliotek
2) Formatowanie kodu
3)Dzielenie projektu na np klasy
4) Zapoznanie sie z wskaźnikami
Zapoznaj się z frameworkiem, który udostępnia Qt aby lepiej zrozumieć zasadę działanie : sceny, widoku czy itemu : https://doc.qt.io/archives/qt-4.8/graphicsview.html lub https://www.youtube.com/watch?v=b35JF4LqtBs&list=PUYP0nk48grsMwO3iL8YaAKA&index=11.