Название: Нажата ли в данный момент клавиша? Отправлено: kpx13 от Май 02, 2010, 13:54 Как узнать, нажата ли в данный момент клавиша?
Можно ли это сделать без событий? Я пыталась сделать с событиями, вот код: Код: void GraphWindow::keyPressEvent(QKeyEvent *k) Ничего не печатает, что бы я не нажимала :'( Причём такие же события для мышки работают. Название: Re: Нажата ли в данный момент клавиша? Отправлено: lit-uriy от Май 02, 2010, 14:05 А GraphWindow, находится в этот момент в фокусе?
Название: Re: Нажата ли в данный момент клавиша? Отправлено: kpx13 от Май 02, 2010, 14:08 GraphWindow::GraphWindow(QWidget *parent)
: QWidget(parent) { clearColor = QColor(255, 219, 245); cutterColor = QColor("red"); linesColor = QColor("blue"); resultColor = QColor("green"); buf = new QPixmap(width(),height()); paint = false; begin = false; setFocus(); clearPic(); } ну вроде да ... Название: Re: Нажата ли в данный момент клавиша? Отправлено: kpx13 от Май 02, 2010, 14:18 Код: void GraphWindow::mousePressEvent(QMouseEvent *m) Мда... решила проблему... Извращенским способом Название: Re: Нажата ли в данный момент клавиша? Отправлено: lit-uriy от Май 02, 2010, 17:52 >>ну вроде да ...
ты мышкой в него щёлкни, и проверь реагирует на клавиши или нет Название: Re: Нажата ли в данный момент клавиша? Отправлено: Igors от Май 02, 2010, 23:56 Можно использовать нативные ф-ции: GetAsyncKeyState (Вындоуз), GetKeys (Mac). Через события тоже можно, но получается длинновато (надо ставить eventFilter и там отлавливать). Не выйдет если клавиша была нажата когда Ваша задача не в фокусе, но это редкий случай.
Название: Re: Нажата ли в данный момент клавиша? Отправлено: Marat(Qt) от Май 04, 2010, 18:55 У QWidget в FocusPolicy по умолчанию стоит NoFocus, что объясняет ваши проблемы с фокусом.
|