Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'Doku_Renderer_metadata' does not have a method 'section_edit' in /customers/oramezo.org/oramezo.org/httpd.www/inc/parserutils.php on line 419
Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'Doku_Renderer_metadata' does not have a method 'section_edit' in /customers/oramezo.org/oramezo.org/httpd.www/inc/parserutils.php on line 419
Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'Doku_Renderer_metadata' does not have a method 'section_edit' in /customers/oramezo.org/oramezo.org/httpd.www/inc/parserutils.php on line 419
Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'Doku_Renderer_metadata' does not have a method 'section_edit' in /customers/oramezo.org/oramezo.org/httpd.www/inc/parserutils.php on line 419
Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'Doku_Renderer_metadata' does not have a method 'section_edit' in /customers/oramezo.org/oramezo.org/httpd.www/inc/parserutils.php on line 419
Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'Doku_Renderer_xhtml' does not have a method 'section_edit' in /customers/oramezo.org/oramezo.org/httpd.www/inc/parserutils.php on line 555
Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'Doku_Renderer_xhtml' does not have a method 'section_edit' in /customers/oramezo.org/oramezo.org/httpd.www/inc/parserutils.php on line 555
Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'Doku_Renderer_xhtml' does not have a method 'section_edit' in /customers/oramezo.org/oramezo.org/httpd.www/inc/parserutils.php on line 555
Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'Doku_Renderer_xhtml' does not have a method 'section_edit' in /customers/oramezo.org/oramezo.org/httpd.www/inc/parserutils.php on line 555
Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'Doku_Renderer_xhtml' does not have a method 'section_edit' in /customers/oramezo.org/oramezo.org/httpd.www/inc/parserutils.php on line 555
Symbian использует Unicode, но просто вывести текст на русском, подобно тому, как это делается для английского, не проходит. u”Добрый вечер” отображается “крокозябрами”. На некоторых сайтах предлагается записывать все в юникодных строках следующим образом: u”\u0414\u043e\u0431\u0440\u044b\u0439 \u0432\u0435\u0447\u0435\u0440”. Да, строка будет выведена корректно, но вот читабельность исходного текста совершенно пропадает.
Все оказывается очень просто, если, конечно, хорошенько подумать. Вместо u”…” я использую короткую однострочную функцию, точнее, две – для преобразования обычных строк в юникод, и для преобразования юникодных строк в обычные. Вот эти функции:
u = lambda s: s.decode('utf-8')
s = lambda s: s.encode('utf-8')
Везде в тексте я пишу u(“Добрый вечер”), и все замечательно работает.
Несмотря на то, что в руководстве написано, что надо просто сказать None последним аргументом метода bind, это часто приводит к падению всего Питона.
Правильно использовать такую команду:
self.editor.bind(key, lambda : None)
Приложение на Питоне для S60 должно содержать несколько обязательных элементов:
импорта модулей appuifw и e32, которые необходимы для работы приложения,
создания графического интерфейса (включая главное меню),
назначения обработчиков клавиатуры (прежде всего обработчика клавиши закрытия приложения),
создания “активного объекта”, который предотвратит завершение работы программы до получения им сигнала из обработчика клавиши закрытия.
Вот пример правильного “скелета” приложения, реализованного в духе ООП в виде класса. При запуске заполняет экран белым цветом, выводит заголовок приложения и ждет нажатия клавиши “Exit” (правого софткея).
# firstapp.py: скелет класса-приложения для Pys60
# -*- coding: utf-8 -*-
# импортируем нужные модули
import appuifw
import e32
# объявляем класс приложения
class MyApp(object):
'''Простейший класс-приложение Pys60
'''
def __init__(self):
'''Конструктор'''
# тут разные начальные настройки
self.title = u'My First App'
self.canvas = appuifw.Canvas()
def exitEvent(self):
'''Обработчик нажатия правой кнопки - выход'''
# сюда можно вставить код, который нужно выполнить перед
# выходом - сохранение файлов, настроек и т.п.
# посылаем сигнал активному объекту
self.app_lock.signal()
def run(self):
'''Собственно запуск приложения'''
# здесь код, который нужно выполнить непосредственно в момент запуска приложения
# например, создание главного меню, заголовка приложения и т.п.
appuifw.app.title = self.title
appuifw.app.body = self.canvas
# устанавливаем обработчик нажатия кнопки выхода
appuifw.app.exit_key_handler = self.exitEvent
# создаем активный объект и заставляем его ждать сигнала -
# это предотвращает закрытие приложения до
# нажатия кнопки выхода
self.app_lock = e32.Ao_lock()
self.app_lock.wait()
if __name__ == '__main__':
# создаем объект-приложение и запускаем его
app = MyApp()
app.run()
- Пойти на https://www.symbiansigned.com/app/page/public/openSignedOnline.do
- Ввести:
- IMEI своего телефона (можно получить набрав
*#06# на телефоне),
- адрес эл. почты,
- выбрать sis-файл, который вы хотите подписать,
- ввести капчу,
- отметить галку "Accept legal agreement"
- Нажать "Send"
- Спустя несколько минут должно прийти письмо со ссылкой, по которой надо перейти чтобы подтвердить свой адрес
- Спустя еще некоторое время придет еще одно письмо, в котором уже будет ссылка для скачивания SIS-файла, подписанного для вашего телефона.