gabin
Ноя. 12, 2009 16:28:32
Как известно, стандартная питоновская функция ввода данных raw_input работает и на pyS60. Вот только чтоб данные ввелись необходимо из таблицы символов выбрать символ Новой строки. Как сделать чтобы данные вводились по нажатию центральной кнопки джойстика?
(appuifw.query не предлагать)
sypper-pit
Ноя. 12, 2009 17:18:32
ты хочешь чтоб у тебя вводились при помощи джойстика (влево - право, верх-низ) и при нажатии центральной клавиши символ вставлялся в поле?
gabin
Ноя. 12, 2009 17:24:10
Чтобы текст вводился в обычном клавиатурном режиме, а при нажатии центральной клавиши осуществлялся ввод набранных данных.
Это можно сравнить с интерактивным режимом pys60, к примеру: мы вводим текст , например import os , нажимаем центральную клавишу и происходит тут же обработка этой команды и строка для ввода новых команд
По сути нужна аналогичная raw_input функция, только чтоб данные вводились центральной клавишей
igor.kaist
Ноя. 13, 2009 09:48:03
Можешь написать сам, используя Text, и перенаправляя stdout и stdin. Забинди нужные клавиши на нужные действия.
upd: или можно посмотреть, как это сделано в интерактивной консоли…
gabin
Ноя. 13, 2009 15:29:55
где можно посмотреть исходный код консоли?
igor.kaist
Ноя. 13, 2009 18:57:34
gabin
Ноя. 16, 2009 11:02:40
Скрипт вроде небольшой, но как они биндят central key всё равно не понятно :|. Очень запутано.
На
нокиа форуме тоже ничем не могут помочь.
igor.kaist, можешь набросать хотя бы пару строк кода ?
igor.kaist
Ноя. 16, 2009 14:28:04
А что там не понятного?
self.co.control.bind(EKeyDevice3, self.handle_ok_press)
P.S. Набросать пару строк не могу, так как нету у меня клавиатуры на телефоне :)
igor.kaist
Ноя. 16, 2009 14:31:32
from appuifw import *
from key_codes import *
text=Text()
def ok():
text.add('\n')
# делаем что нибудь еще
text.bind(EKeyDevice3,ok)
app.body=text
что то типа этого…
gabin
Ноя. 16, 2009 19:13:53
Ок, допустим мне необходимо ввести 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 клавиша на это никак не реагирует