Найти - Пользователи
Полная версия: Аналог raw_input для смарта
Начало » Mobile Python » Аналог raw_input для смарта
1 2
gabin
Как известно, стандартная питоновская функция ввода данных raw_input работает и на pyS60. Вот только чтоб данные ввелись необходимо из таблицы символов выбрать символ Новой строки. Как сделать чтобы данные вводились по нажатию центральной кнопки джойстика?
(appuifw.query не предлагать)
sypper-pit
ты хочешь чтоб у тебя вводились при помощи джойстика (влево - право, верх-низ) и при нажатии центральной клавиши символ вставлялся в поле?
gabin
Чтобы текст вводился в обычном клавиатурном режиме, а при нажатии центральной клавиши осуществлялся ввод набранных данных.
Это можно сравнить с интерактивным режимом pys60, к примеру: мы вводим текст , например import os , нажимаем центральную клавишу и происходит тут же обработка этой команды и строка для ввода новых команд

По сути нужна аналогичная raw_input функция, только чтоб данные вводились центральной клавишей
igor.kaist
Можешь написать сам, используя Text, и перенаправляя stdout и stdin. Забинди нужные клавиши на нужные действия.
upd: или можно посмотреть, как это сделано в интерактивной консоли…
gabin
где можно посмотреть исходный код консоли?
igor.kaist
держи…
http://mobile-master.org/temp/for-python-forum/cons.zip
gabin
Скрипт вроде небольшой, но как они биндят central key всё равно не понятно :|. Очень запутано.
На нокиа форуме тоже ничем не могут помочь.
igor.kaist, можешь набросать хотя бы пару строк кода ?
igor.kaist
А что там не понятного?
self.co.control.bind(EKeyDevice3, self.handle_ok_press)
P.S. Набросать пару строк не могу, так как нету у меня клавиатуры на телефоне :)
igor.kaist
from appuifw import *
from key_codes import *
text=Text()
def ok():
text.add('\n')
# делаем что нибудь еще
text.bind(EKeyDevice3,ok)
app.body=text
что то типа этого…
gabin
Ок, допустим мне необходимо ввести 2 переменные. Я использую такой код:
#-*-coding:utf-8-*-
import e32
from appuifw import *
from key_codes import *
text=Text()
def ok():
text.add(u'\n')
# дeлaeм чтo нибyдь eщe

text.bind(EKeyDevice3,ok)
app.body=text
first=raw_input("Who fires?").lower()
second=raw_input("Who at?").lower()
print first,second
lock=e32.Ao_lock()
app.exit_key_handler=lock.signal
lock.wait()
Код неработоспособный. Появляется сперва сообщение Who fires? , потом чистый экран . Вводить можно любые символы и ok клавиша на это никак не реагирует
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB