Я хотел бы иметь возможность проверить, нажата ли клавиша в любое время. Я представляю себе такое решение:
void MyQQuickPaintedItem::keyPressEvent(QKeyEvent * event)
{
isKeyPressed[ event->key() ] = 1;
}
void MyQQuickPaintedItem::keyReleaseEvent(QKeyEvent *event)
{
isKeyPressed[ event->key() ] = 0;
}
Чтобы проверить, нажата ли клавиша со стрелкой вправо, достаточно проверить значение isKeyPressed[ Qt::Key_Right ]
.
Я реализовал это и ... не работает. Я не имею в виду, что программа вылетает. isKeyPressed[ Qt::Key_Right ]
всегда равно 0, даже если я нажимаю эту клавишу со стрелкой вправо или любую другую клавишу.
EDIT:
Один из файлов заголовков:
...
bool isKeyPressed[255];
...
Один из связанных файлов:
...
extern bool isKeyPressed[255];
...
Я не знаю точно, насколько большим должен быть isKeyPressed
, но я не получаю SIGSEGV, поэтому размер, вероятно, подходит.