Как можно считать нажатие клавиши за одно, а не в стандартной форме: сигнал - пауза - сигнал (пока происходит нажатие)?
Мне нужно что бы эта форма была такой: нажатие клавиши - непрекращающийся сигнал.
Я попытался считывать нажатие в этой стандартной форме и приравнивать булевое значение - True, а когда клавиша будет отжата, то False, но в итоге все работало инверсивно и с задержкой.
void Widget::keyPressEvent(QKeyEvent *Kevent){
if (Kevent->key() == Qt::Key_A){
bt = true;
}
}
void Widget::keyReleaseEvent(QKeyEvent *Revent){
if (Revent->key() == Qt::Key_A){
bt = false;
}
}
как можно считывать нажатую клавишу по человечески?
Можно через таймер:
Widget::Widget(): _timer() {
// Гавкаем "наружу" при нажатой клавише
connect(&_timer, &QTimer::timeout, this, &Widget::wofwof);
}
void Widget::keyPressEvent(QKeyEvent *Kevent){
if (Kevent->key() == Qt::Key_A)
_timer.start(1000); // Частота 1 сек
}
void Widget::keyReleaseEvent(QKeyEvent *Revent){
// Таймер работает - значит была нажата нужная клавиша
if( _timer.isActive() )
_timer.stop();
}
Заголовок:
class Widget : public QWidget {
Q_OBJECT
public:
Widget();
void keyPressEvent(QKeyEvent *Kevent);
void keyReleaseEvent(QKeyEvent *Kevent);
signals:
void wofwof();
private:
QTimer _timer;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Пытаюсь хранить в контейнере абстрактный тип "Weapon", но возникает ошибкаКод:
Текст (10 000+ символов) при записи в БД обрезается, записывается не весьТекст меньшего размера записывается полностью