Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
ivanpankov
0 / 0 / 0
Регистрация: 11.09.2016
Сообщений: 7
1

Игнорирование нажатия пробела

28.11.2017, 22:27. Просмотров 743. Ответов 2
Метки нет (Все метки)

Есть клавиатурный тренажёр. Чтобы перейти к следующему слову нужно нажать пробел. Но вот когда заканчивается время с начала ввода, то открывается окно результата. Дак вот если нажать случайно прожать пробел, то выполнится слот из кнопки и окно тут же исчезнет с результатом. Как пофиксить? Можно ли как-нибудь игнорить пробел? Сворачиванием окна результата в rwin::newMenuWindow не хочу делать.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef RESSWIN_H
#define RESSWIN_H
 
#include <QtWidgets>
#include "practicewindow.h"
#include "dialog.h"
 
class rwin : public QDialog
{
    Q_OBJECT
public:
    rwin(int rl = 0, int wl = 0, int rw = 0, int ww = 0);
private:
    QPushButton *ok;
    QLabel *l_sc, *w_sc;
    QTimer *tmr;
    int l_score, l_mistakes, w_score, w_mistakes;
 
private slots:
    void newMenuWindow();
};
 
#endif // RESSWIN_H
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "resswin.h"        //окно результата
 
rwin::rwin(int rl, int wl, int rw, int ww)
{
    l_score = rl;
    l_mistakes = wl;
    w_score = rw;
    w_mistakes = ww;
 
    setWindowTitle("Your result");
    setFixedSize(250,150);
 
    ok = new QPushButton("&Ok");
    l_sc = new QLabel("Keystrokes: " + QString::number(l_score) + " | " + QString::number(l_mistakes));
    w_sc = new QLabel("Words: " + QString::number(w_score) + " | " + QString::number(w_mistakes));
 
    QVBoxLayout *lout = new QVBoxLayout;
    lout->addWidget(l_sc);
    lout->addWidget(w_sc);
    lout->addWidget(again);
    lout->addWidget(ok);
    setLayout(lout);
 
    connect(ok,SIGNAL(clicked()),this,SLOT(newMenuWindow()));
}
 
void rwin::newMenuWindow()
{
    Dialog *d = new Dialog;
    d->show();
    this->close();
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2017, 22:27
Ответы с готовыми решениями:

Замена символов пробела другими символами
Всем привет. Столкнулся с необходимостью замены пробела другими символами....

Игнорирование enter and leave events
есть ли какой-нибудь флаг игнорирования enter и leave events, чтобы не...

Выборка данных, игнорирование пробела
Нужно отобрать символы не содержащие символ 'a' Пишу код SELECT OFFICE,...

Эмитация нажатия пробела
Собственно сабж. Через SendKeys.Send. Не могу найти код пробела для этой...

ожидание нажатия пробела
Добрый вечер, а может уже и ночь, помогите кому не лень, программа должна...

2
nmcf
6514 / 5743 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
28.11.2017, 23:52 2
Лучший ответ Сообщение было отмечено ivanpankov как решение

Решение

Сделай задержку по времени. Чтобы кнопка становилась активной не сразу.
1
ivanpankov
0 / 0 / 0
Регистрация: 11.09.2016
Сообщений: 7
29.11.2017, 01:00  [ТС] 3
Держу в курсе
где в waiting: again->blockSignals(false);
C++ (Qt)
1
2
3
    again->blockSignals(true);                          //блокируются сигналы нажатия кнопки again
    QTimer::singleShot(2000, this, SLOT(waiting()));    //задержка чтобы пользователь случайно
                                                        //не нажал пробел и не потерял результаты
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2017, 01:00

ожидать нажатия пробела иначе, продолжать работать
no getch Проблема такая есть функия ibhit она проверяет наличие в буфере...

Выход из цикла после нажатия клавиши, например пробела
Помогите с такой проблемой, я написал программу и надо сделать так чтобы после...

Игнорирование действия после нажатия на BitBtn
Калькулятор..... Пытаюсь при повторном нажатии на запятую игнорировать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru