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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Подскажите коды клавиш для Symbian ?  (Прочитано 11890 раз)
lolbla2
Гость
« : Февраль 16, 2012, 18:23 »

Или может какие стандартные enum или константы имеются?
« Последнее редактирование: Февраль 17, 2012, 18:44 от lolbla2 » Записан
andrew.k
Гость
« Ответ #1 : Февраль 16, 2012, 18:24 »

Или может какие стандартные enum или константы имеются?
enum Qt::Key
Записан
lolbla2
Гость
« Ответ #2 : Февраль 16, 2012, 19:10 »

Или может какие стандартные enum или константы имеются?
enum Qt::Key
Да это итак прозрачно и очевидно
а можно поподробнее?
там есть всякие Qt::Key_Space к примеру это понятно пробел, а какие кеи для симбиана?
подскажи конкретно константы для

центральной клавиши
левая софт клавиша
правая софт клавиша
для каждой из цифр 0...9
Записан
Bepec
Гость
« Ответ #3 : Февраль 17, 2012, 07:19 »

Эээ... есть простое решение - втыкнуть в пустой проект сниффер скан кодов и увидеть всё...
Записан
lolbla2
Гость
« Ответ #4 : Февраль 17, 2012, 08:33 »

Эээ... есть простое решение - втыкнуть в пустой проект сниффер скан кодов и увидеть всё...

А можно поподробнее? что за сниффер такой?
Записан
Bepec
Гость
« Ответ #5 : Февраль 17, 2012, 08:36 »

Код:
void keyScanCode::keyPressEvent(QKeyEvent* pe)
{
//нет автоповтору
if(pe->isAutoRepeat())
return;

//  преобразует доп клавиши в стандартный скан код
int scancode = pe->nativeScanCode() & 0xFF;
int scanCodeVirt = pe->nativeVirtualKey() & 0xFF;

ui.label_code->setText(QString("%1").arg(scancode));
ui.label_code_2->setText(QString("%1").arg(scanCodeVirt));
ui.label_code_3->setText(pe->text());
}

Примерно так.
Записан
lolbla2
Гость
« Ответ #6 : Февраль 17, 2012, 14:02 »

Код:
void keyScanCode::keyPressEvent(QKeyEvent* pe)
{
//нет автоповтору
if(pe->isAutoRepeat())
return;

//  преобразует доп клавиши в стандартный скан код
int scancode = pe->nativeScanCode() & 0xFF;
int scanCodeVirt = pe->nativeVirtualKey() & 0xFF;


ui.label_code_3->setText(pe->text());
}

Примерно так.

Странно, здесь всегда нули:

Код:
ui.label_code->setText(QString("%1").arg(scancode));
ui.label_code_2->setText(QString("%1").arg(scanCodeVirt));
Записан
lolbla2
Гость
« Ответ #7 : Февраль 17, 2012, 14:05 »

а всё кажись разобрался, вот так вроде что-то вразумительное:

Код:
int scancode = e->key() ;
Записан
Bepec
Гость
« Ответ #8 : Февраль 17, 2012, 14:15 »

Незнаю на симбиане не пробовал Улыбающийся
Записан
andrew.k
Гость
« Ответ #9 : Февраль 17, 2012, 14:16 »

Незнаю на симбиане не пробовал Улыбающийся
e->key() везде должен код клавиши возвращать.
Непонятно, зачем там столько манипуляций в твоем коде.
Записан
lolbla2
Гость
« Ответ #10 : Февраль 17, 2012, 14:41 »

Незнаю на симбиане не пробовал Улыбающийся
e->key() везде должен код клавиши возвращать.
Непонятно, зачем там столько манипуляций в твоем коде.

в стандартном еnum Qt::key нету кстати кодов сисмбиановских. А именно вот они какие:
л. софт = 17825792
п. софт = 17825793
центральная = 16842752
меню = 16777482
вверх = 16777235
вниз = 16777237
влево = 16777234
вправо = 16777236
# = 35
* = 42
0...9 - Такие же как в винде и везде видимо
Записан
andrew.k
Гость
« Ответ #11 : Февраль 17, 2012, 14:48 »

в стандартном еnum Qt::key нету кстати кодов сисмбиановских. А именно вот они какие:
л. софт = 17825792
п. софт = 17825793
центральная = 16842752
меню = 16777482
вверх = 16777235
вниз = 16777237
влево = 16777234
вправо = 16777236
# = 35
* = 42
0...9 - Такие же как в винде и везде видимо
В описанном выше порядке:
Qt::Key_Context1
Qt::Key_Context2
Qt::Key_Select
Qt::Key_TopMenu
Qt::Key_Up (и остальные)
Qt::Key_NumberSign
Qt::Key_Asterisk
Записан
lolbla2
Гость
« Ответ #12 : Февраль 17, 2012, 15:04 »

Цитировать
В описанном выше порядке:
Qt::Key_Context1
Qt::Key_Context2
Qt::Key_Select
Qt::Key_TopMenu
Qt::Key_Up (и остальные)
Qt::Key_NumberSign
Qt::Key_Asterisk

Спс а как находить в этом енуме нужную клавишу? там же они в двоичном да?

берём к примеру Qt::Key_Select   0x01010000 переводим в десятичную получаем 80. переводил на калькуляторе пишу 1010000 и получаю 80,а реальный код у неё 16842752, что я не так делаю?
Записан
andrew.k
Гость
« Ответ #13 : Февраль 17, 2012, 15:07 »

Цитировать
В описанном выше порядке:
Qt::Key_Context1
Qt::Key_Context2
Qt::Key_Select
Qt::Key_TopMenu
Qt::Key_Up (и остальные)
Qt::Key_NumberSign
Qt::Key_Asterisk

Спс а как находить в этом енуме нужную клавишу? там же они в двоичном да?

берём к примеру Qt::Key_Select   0x01010000 переводим в десятичную получаем 80. переводил на калькуляторе пишу 1010000 и получаю 80,а реальный код у неё 16842752, что я не так делаю?
Не так переводишь)

Они в шестнадцатиричном виде конечно же. Ты разве не видишь префикс 0х?
« Последнее редактирование: Февраль 17, 2012, 15:09 от andrew.k » Записан
mutineer
Гость
« Ответ #14 : Февраль 17, 2012, 15:08 »


Спс а как находить в этом енуме нужную клавишу? там же они в двоичном да?

берём к примеру Qt::Key_Select   0x01010000 переводим в десятичную получаем 80. переводил на калькуляторе пишу 1010000 и получаю 80,а реальный код у неё 16842752, что я не так делаю?

С какого препугу 0х* это двоичный вид?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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