Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/29: Рейтинг темы: голосов - 29, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 04.05.2021
Сообщений: 12

Странное поведение Qt::Key_Space

30.05.2021, 17:15. Показов 6777. Ответов 23

Студворк — интернет-сервис помощи студентам
Всем привет! Пишу курсовую на C++, использую фреймворк Qt Creator. Я начинающий, поэтому сильно не ругайте)

Задача была такова: имеется label_out и label_in (наложены друг на друга, одинаковый шрифт, размер и тд., только label_in располагается поверх label_out и отличается цветом). В label_out импортируется текст из .txt файла. Далее обрабатываются нажатия. С обычными буквами всё отлично работает (включая состояние case буквы), при нажатии на правильную букву текста в label_in записывается эта буква. Но вот проблема: когда дело доходит до пробела в тексте, пробел не записывается в label_in:
C++ (Qt)
1
2
3
4
5
6
7
if (text[letter] == QString(" ") && key_mod ==  Qt::Key_Space)
    {
        QString in_text = ui->label_in->text();
        in_text += text[letter];
        ui->label_in->setText(in_text);
        letter ++;
    }
Данный кусок кода будет вставлять пробел в label_in, если встретит пробел в label_out. Но проблема в том, что Key_Space не работает почему-то. В доказательство этому, я провёл эксперимент и заменил "Qt::Key_Space" на "Qt::Key_Control" и пробелы начали ставиться после нажатия на Ctrl, но мне нужно чтобы пробелы ставились при нажатии на пробел. Как решить данную проблему?
C++ (Qt)
1
2
3
4
5
6
7
if (text[letter] == QString(" ") && key_mod ==  Qt::Key_Control)
    {
        QString in_text = ui->label_in->text();
        in_text += text[letter];
        ui->label_in->setText(in_text);
        letter ++;
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.05.2021, 17:15
Ответы с готовыми решениями:

странное поведение Qt
до сих пор ковыряюсь с установкой qt в винде, поставил в XP, всё работает, всё компилится, всё запускается, ставил в семёрке, действовал по...

странное поведение QString
QString id; r=manager->get(QNetworkRequest(QUrl(Online_adress+"addGameUser.php?room="+room+"&name="+name))); eventLoop.exec(); ...

Странное поведение регулярки
Привет. Необходимо вырезать текст, находящийся в скобках. QString str("текст (аааа, бббб, ввв)"); QString output =...

23
фрилансер
 Аватар для Алексей1153
6510 / 5772 / 1135
Регистрация: 11.10.2019
Сообщений: 15,419
31.05.2021, 09:33
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Алексей1153 Посмотреть сообщение
в ZIP архиве
тренируем внимательность, для программиста это очень важно

посмотрю позже, сейчас занятый. Или кто-то другой посмотрит уже )
0
0 / 0 / 0
Регистрация: 04.05.2021
Сообщений: 12
31.05.2021, 09:53  [ТС]
Бывает)) Привык просто в rar архивировать
Вложения
Тип файла: zip Keyboard.zip (13.5 Кб, 3 просмотров)
0
фрилансер
 Аватар для Алексей1153
6510 / 5772 / 1135
Регистрация: 11.10.2019
Сообщений: 15,419
31.05.2021, 18:39
Лучший ответ Сообщение было отмечено Marinovaniy как решение

Решение

Marinovaniy, в данный момент проблема решается запретом фокуса для кнопки


заодно укажу на другу проблему, которая ещё встретится ))

пути к файлам нужно задавать не абсолютные "D:\\.....\\...txt" , а относительно экзешника. Они же около него будут, скорее всего.

srand(time(NULL));
rndm = 1 + rand() % 34;

QString word = strList[rndm];
тут не проверяешь на выход за границы strList
1
0 / 0 / 0
Регистрация: 04.05.2021
Сообщений: 12
31.05.2021, 23:18  [ТС]
Отлично! Спасибо огромное, проблема с пробелом решена) Насчёт пути тоже спасибо, буду учитывать. А насчёт выход за границы: rndm принимает значения от 1 до 35 только, поэтому за границы выйти не может)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2021, 23:18

странное поведение программы
Подскажите в чем мб дело, может быть это не на этот форум вопрос, если так , то отправьте, пожалуйста куда нужно :) Дело в том, что...

Странное поведение QDialog
Есть приложение на Qt под Centos7 - платёжный терминал. Для MainWindow (наследник от QMainWindow) запускаю showFullScreen() - его задача...

QSqlDatabase странное поведение open()
Заметил одну странность, даже если указать неверные данные для подключения к базе, то программа всё равно говорит об успешном соединении: ...

Qt: странное поведение QByteArray::replace
Написал такой слот: ba = new QByteArray(length,'\0'); lastPos = 0; QNetworkReply *reply = manager->get(request);...

Странное поведение окна программы
Вот такая странная штука получается. Qt-программку вызываю из другой виндоузской вот так bool k = ::CreateProcess(NULL,...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru