LINUX.ORG.RU

задействовать цифровую клавиатуру

 ,


0

2

В общем, стал я пробовать Qt 5.3.0 beta для Android. Что ж, наконец то они пофиксили зависание программы при переключении между другими программами и теперь на первый взгляд это более менее полноценная платформа для Android.

Но теперь новые проблемы...

Как задействовать цифровую клавиатуру? Чтобы когда пользователь должен ввести цифры чтобы у него появилась именно цифровая клавиатура от 1 до 9,0.

Первое решение что я нашел так это ui->my_line_edit->setValidator(new QIntValidator(this)) - это позволяет вводить только цифры. При этом, на форумах пишут что это должно заставить появляться именно цифровую клавиатуру. Это главный вопрос.

Второстепенный вопрос - как заставить скрыться клавиатуру при появлении программы? Когда переключаюсь с другой программы на свою на телефоне - клавиатура не убирается, я бы хотел её скрывать всегда, т.е. каким-то образом вызывать функцию... Как?

Я вот подумал... Раз Qt держит всякие мобильные платформы, я подозреваю есть некий дополнительный набор классов для управления мобильной спецификой...

Эээ... QtAndroidExtras?

По поводу скрытия - это же в AndroidManifest.xml настраивается.

По поводу цифровой клавиатуры ничего не могу подсказать.

Adonai ★★★ ()
Ответ на: комментарий от Adonai

QtAndroidExtras - это ж вызов жабовского API из C++, так? т.е. ты рекомендуешь дергать нативное API для всего что хочется?

Просто вот например если я захочу на ios запускать свой софт, неужели тоже надо свое нативное API дергать.

Я подозреваю что есть некое мобильное API. С первого взгляда есть http://doc.qt.digia.com/qtmobility/ - но где там хоть что-нибудь для клавиатуры? Я подозреваю что есть некий способ объяснить Qt что вот сюда надо цифровую клаву...

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

С первого взгляда есть http://doc.qt.digia.com/qtmobility/ - но где там хоть что-нибудь для клавиатуры?

это же вообще устаревшее?

Насчёт клавиатуры - попробуй setInputMethodHints(Qt::InputMethodHints hints)

Adonai ★★★ ()

no-dashi, подскажи, что в манифесте нужно прописать, чтобы при открытии Activity софт-клавиатура была скрытой?

Adonai ★★★ ()
Ответ на: комментарий от Adonai

Насчёт клавиатуры - попробуй setInputMethodHints(Qt::InputMethodHints hints)

ДА! Появилась цифровая клавиатура когда я ui->my_line_edit->setInputMethodHints(Qt::ImhDigitsOnly);

Осталось только понять как обработать нажатие «готово», когда ввод числа завершен и на клавиатуре с цифрами можно жать готово...

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от Adonai

SIGNAL(editingFinished()) - вот что генерится когда жму «готово»

осталось лишь найти какой функцией скрыть клавиатуру методами обычного Qt, не прибегая к нативным каким-то хакам

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от Adonai

осталось лишь найти какой функцией скрыть клавиатуру методами обычного Qt, не прибегая к нативным каким-то хакам

QGuiApplication::inputMethod()->hide();

В общем, топик завершен. Найдено всё что я хотел.

ЗЫ

Очень рад, сначала испугался что порт Qt5/Android слишком некачественный. Но тем не менее, всё поддерживается.

Отмечу что в Qt 5.3.0 beta и вероятно более новые версии - уже не виснут, теперь это полноценный порт в моих глазах на который можно опереться.

Но я пока не пробовал QML и OpenGL, но говорят проблема _была_ во всех вариациях. Вероятно пофиксили.

I-Love-Microsoft ★★★★★ ()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Рад, что получилось все.

Сколько приложение весит вместе с библиотеками?

Есть ли поддержка нативного look & feel?

Кое-чего ещё не хватает для полноценной работы. BroadcastReceiver'ов, например, или интентов. Но вообще да, ребята молодцы.

Adonai ★★★ ()
Последнее исправление: Adonai (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Конечно да.

Это, скажем так, внешние синапсы, которые позволяют программе реагировать на события (пришедшее СМС, например, или сигнал о перезагрузке устройства)

Так что насчёт тем и размера apk со слинкованными либами?

Adonai ★★★ ()
Последнее исправление: Adonai (всего исправлений: 1)
Ответ на: комментарий от Adonai

Так что насчёт тем и размера apk со слинкованными либами?

Вечером посмотрю и скажу. Ориентировочно 20 Мб, а может 25 Мб, вечером точно сообщу.

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от Adonai

Так что насчёт тем и размера apk со слинкованными либами?

7.5 Мбайт, либы (so-шки) вроде как стрипнутые, но есть gdbserver бинарь внутри, а еще называется:

7,1M марта 31 23:52 QtApp-debug.apk
7,1M марта 31 23:52 QtApp-debug-unaligned.apk

Это дебаг, и тем не менее всего 7 мегарей...

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Неплохо! В прошлом году 20 весили!

Ещё бы статическую линкову впилили, вообще смак бы был.

Adonai ★★★ ()
Ответ на: комментарий от Adonai

Эээ... конечный apk я заливаю на телефон как есть, и оно работает... какая ещё «статическая линковка» в случае андроида?

ASGAlex ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.