Форум сайта python.su
Как известно, стандартная питоновская функция ввода данных raw_input работает и на pyS60. Вот только чтоб данные ввелись необходимо из таблицы символов выбрать символ Новой строки. Как сделать чтобы данные вводились по нажатию центральной кнопки джойстика?
(appuifw.query не предлагать)
Офлайн
ты хочешь чтоб у тебя вводились при помощи джойстика (влево - право, верх-низ) и при нажатии центральной клавиши символ вставлялся в поле?
Офлайн
Чтобы текст вводился в обычном клавиатурном режиме, а при нажатии центральной клавиши осуществлялся ввод набранных данных.
Это можно сравнить с интерактивным режимом pys60, к примеру: мы вводим текст , например import os , нажимаем центральную клавишу и происходит тут же обработка этой команды и строка для ввода новых команд
По сути нужна аналогичная raw_input функция, только чтоб данные вводились центральной клавишей
Отредактировано (Ноя. 12, 2009 19:49:42)
Офлайн
Можешь написать сам, используя Text, и перенаправляя stdout и stdin. Забинди нужные клавиши на нужные действия.
upd: или можно посмотреть, как это сделано в интерактивной консоли…
Отредактировано (Ноя. 13, 2009 12:38:52)
Офлайн
где можно посмотреть исходный код консоли?
Офлайн
Офлайн
Скрипт вроде небольшой, но как они биндят central key всё равно не понятно :|. Очень запутано.
На нокиа форуме тоже ничем не могут помочь.
igor.kaist, можешь набросать хотя бы пару строк кода ?
Офлайн
А что там не понятного?
self.co.control.bind(EKeyDevice3, self.handle_ok_press)
Отредактировано (Ноя. 16, 2009 14:28:45)
Офлайн
from appuifw import *
from key_codes import *
text=Text()
def ok():
text.add('\n')
# делаем что нибудь еще
text.bind(EKeyDevice3,ok)
app.body=text
Офлайн
Ок, допустим мне необходимо ввести 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()
Офлайн