Russian Qt Forum
Ноябрь 14, 2024, 21:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: События клавиатуры  (Прочитано 3920 раз)
Larry
Гость
« : Ноябрь 27, 2010, 15:04 »

Добрый день, форумчане! Есть переопределенное событие keyPressEvent и при обработке нажатия ctrl + 'S' надо отправить строку в функцию, где она и будет обработана, но в реальности происходить отправка двух строк, сначала пустая "" и вторая уже с результатом. Как мне избавиться от пустой строки?

Код:
QString str;

switch(keyEvent->key())
{
case Qt::Key_C:
str = "C";
break;

case Qt::Key_Enter:
case Qt::Key_Return:
str = "=";
break;

case Qt::Key_Comma:
str = ".";
break;

case Qt::Key_S:
if(keyEvent->modifiers() & Qt::ControlModifier)
{
str = "MS";
}
break;

default: str = keyEvent->text(); break;
}

processKey(str);

из-за этого в processKey возникает ошибка Грустный
Записан
whirlwind
Гость
« Ответ #1 : Ноябрь 27, 2010, 17:27 »

по идее, в данном случае, если нажали ctrl+S, вы попадете в default:
Код:
default: str = keyEvent->text(); break;
и тогда ваша строка будет равна "Ctrl+S" Почему вы получаете другой незультат -- не ясно.

еще есть подозрение, что на самом деле вы хотели использовать QAction Улыбающийся
Записан
Larry
Гость
« Ответ #2 : Ноябрь 27, 2010, 19:28 »

спасибо, посмотрю как это можно использовать Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.062 секунд. Запросов: 21.