Russian Qt Forum

Qt => Общие вопросы => Тема начата: richardzorgi от Июнь 26, 2011, 18:01



Название: программа для мобильного телефона
Отправлено: richardzorgi от Июнь 26, 2011, 18:01
Всем доброго времени суток! Ситуация следующая: программа для мобильного телефона. Есть QTextBrouser, кнопка. В QTextBrouser по нажатию  выводится фрагмент текста из ресурсного файла. Нажимаем на кнопку ещё раз -> выводится следующий фрагмент и т.д.
  Проблема в следующем: при запуске приложения в Эмуляторе Qt (когда на экране появляется мобильный телефон, приложение запущено в мобильном) можно пользоваться курсором мыши, нажимать на  QTextBrouser(для прокрутки текста, если текст не умещается на экране), потом нажимать на кнопку. При запуске непосредственно на мобильном телефоне (не сенсорном(Nokia E52)- на сенсорном проблемы нет) курсора нет, можно просто нажимать на центр джойстика(центральная клавиша без цифр), кнопка нажимается, текст выводится. Если текст слишком большой, то появляется полоса прокрутки, можно джойстиком перейти вверх - выделится QTextBrouser, нажимаем на QTextBrouser, теперь можем прокручивать текст вверх\вниз. Прочитав текст, нужно нажать на кнопку, чтобы вывелся следующий фрагмент.

 Вопрос: как перейти обратно к кнопке, чтобы её нажать (что нужно сделать, чтобы "отпустить" QTextBrouser?)?

  Можно вообще убрать из приложения кнопку, привязав нужный слот к кнопкам телефона. Вопрос: Как это сделать(привязать действие к кнопке мобильного телефона (например к нажатию "вправо" на джойстике))?
 У кнопки (pushbutton) есть свойство "shortcut" - можно присвоить нажатию кнопки на клавиатуре нажатие pushbutton. При запуске приложения в эмуляторе (мобильник на экране компьютера) нажатие (мышкой) на кнопку (например с цифрой "5") кнопка pushbutton нажимается, но при запуске в мобильном телефоне нажатие на "5" ни к чему не приводит.

QT SDK1.1, QT Creator 2.2.0, windows


Название: Re: программа для мобильного телефона
Отправлено: richardzorgi от Июль 03, 2011, 22:42
Проблема решена, нужно использовать keyPressEvent, помогло сообщение из темы  "keyPressEvent(), event->key() и QString"
Спасибо! :), а вот еще по поводу QKeyEvent::modifiers(). Там же и остальные клавиши нужно хватать через него? Например F1, Home, Del и т.д. А получится вот таким образом?
Код
C++ (Qt)
void MainWindow::keyPressEvent(QKeyEvent *event)
{
 switch (event->key())
     {
           case Qt::Key_Shift: //нажат Shift;
                                      break;
           case Qt::Key_Alt: //нажат Alt;
                                      break;
              .
              .
              .
           default: break;
     }
}