Python » Страница 751

-

Программирование на Python



dimy44


репутация: 537
на сайте с 2006 года
сообщений: 2540

HTC One S

Евпатория

Возраст - 54

#7501

Я щас глянул сам, нет там прокрутки, вобщем, перепутал я. Блин, не могу вспомнить, где видел пример. У меня-то нет тача.

Прикрепленный файл #1:

Внимание! У вас нет прав для просмотра скрытого текста.
(4,06 Kb)
-------------
добавлено в 22.42: У себя покопался в папках, нашел скрипт.

nur87


репутация: 60
на сайте с 2006 года
сообщений: 559

Explay Golf

Казань

Возраст - 38

#7502

продолжаю изучать рисование на канвасе на таче.

# -*- coding: utf-8 -*-
print u'start'

import appuifw, key_codes

def pererisovka(event):
global point
canvas.text( (10, point), u'pererisovka', fill = (255, 255, 255))

def po1(pos):
global point
point+=30

def risovka(event):
global point
canvas.clear((255, 255, 255))
canvas.text( (100, point), u'risovka', fill = (255, 255, 255))

point=10
appuifw.app.directional_pad=False
appuifw.app.screen = 'normal'
canvas = appuifw.Canvas(event_callback=risovka, redraw_callback=pererisovka)
appuifw.app.body = canvas
canvas.bind(key_codes.EButton1Down, po1)

app_lock = appuifw.e32.Ao_lock()
app_lock.wait()
appuifw.app.exit_key_handler = lambda: app_lock.signal()

print u'end'

когда у меня выполнится функция risovka? потому что когда я тапаю по экрану у меня выполняется только функция pererisovka

dimy44


репутация: 537
на сайте с 2006 года
сообщений: 2540

HTC One S

Евпатория

Возраст - 54

#7503

белый текст на белом фоне?

nur87


репутация: 60
на сайте с 2006 года
сообщений: 559

Explay Golf

Казань

Возраст - 38

#7504

точно.
щас попробую по другому. но все равно экран не становится белым
-------------
добавлено в 21.20: все равно я на экране вижу только pererisovka

# -*- coding: utf-8 -*-
print u'start'

import appuifw, key_codes

def pererisovka(event):
global point
canvas.clear((0,255,0))
canvas.text( (10, point), u'pererisovka', fill = (255, 255, 255))

def po1(pos):
global point
point+=30

def risovka(event):
global point
canvas.clear((255,0,255))
canvas.text( (100, point), u'risovka', fill = (0, 255, 255))

point=10
appuifw.app.directional_pad=False
appuifw.app.screen = 'normal'
canvas = appuifw.Canvas(event_callback=risovka, redraw_callback=pererisovka)
appuifw.app.body = canvas
#canvas.bind(key_codes.EDrag, po1)

canvas.bind(key_codes.EButton1Down, po1)


app_lock = appuifw.e32.Ao_lock()
app_lock.wait()
appuifw.app.exit_key_handler = lambda: app_lock.signal()

print u'end'

-------------
добавлено в 21.21: [!!!]
-------------
добавлено в 21.22: на отступы не смотрите. форум табы так ставит

dimy44


репутация: 537
на сайте с 2006 года
сообщений: 2540

HTC One S

Евпатория

Возраст - 54

#7505

я заранее извиняюсь за вопрос: ты точно на втором питоне запускаешь?

nur87


репутация: 60
на сайте с 2006 года
сообщений: 559

Explay Golf

Казань

Возраст - 38

#7506

ну да.
 Скриншот


-------------
добавлено в 21.47: ну если с этим не понятно.
то у меня есть второй вопрос.

я уже разобрался с нажатиями.
EButton1Down, EButton1Up, EDrag

хочу нарисовать свой интерфейс. тот же листбокс. нарисовать то я её нарисую. а вот как сделать прокрутку пока не пойму.
щас попробую нарисовать примерно примитивы и показать
-------------
добавлено в 21.55: вот что у меня получилось.
 Код программы
 Скриншот

dimy44


репутация: 537
на сайте с 2006 года
сообщений: 2540

HTC One S

Евпатория

Возраст - 54

#7507

Дело в том, что рисовать надо не на канвасе, а на объекте graphics.Image, в твоем случае graphics.Image.new(size). После всех прорисовок блитировать на канвас: canvas.blit(img). А функция redraw_callback вызывается только при обновлении экрана: вызов-отмена меню, сворачивания-заход в приложение итд. Там обычно такой код:
def redraw(x): canvas.blit(img).
Насчет листбокса: как он прокручиваться должен: пункты должны плавно плыть или скакать как при кнопочном управлении с шагом 1 пункт? Я просто тач не юзал.

nur87


репутация: 60
на сайте с 2006 года
сообщений: 559

Explay Golf

Казань

Возраст - 38

#7508

хорошо. щас попробую рисовать на Image и вывести ту же самую картиинку.

листбокс листается у нас плавно.
-------------
добавлено в 22.40: итак. рисую на графике и вывожу на канвасе.
 Код

Ksench


репутация:
на сайте с 1970 года
сообщений:

#7509

Pererisovka. Ну зачем же так.

nur87


репутация: 60
на сайте с 2006 года
сообщений: 559

Explay Golf

Казань

Возраст - 38

#7510

Ksench
т.е. что не так?
smile
-------------
добавлено в 13.57: блин. никак не догоню как сделать прокрутку.
могу сделать только так.

отрисовать 6 пунктов. добавить кнопочку "ВНИЗ" и "ВВЕРХ", который отрисует новый список из 6 элементов и т.д.
эх. хотелось сделать прокрутку через Edrag.


Яндекс.Метрика