Найти - Пользователи
Полная версия: Canvas
Начало » Mobile Python » Canvas
1
ReaL_HarDCorE
Почему то не работает redraw_callback
from miso import *
from globalui import global_msg_query
from topwindow import TopWindow
from sysinfo import *
from sys import *
from graphics import *
from DriveInfo import total_drivespace,drive_names
import time
FONT_ANTIALIAS
import appuifw as ui
import envy
from os import abort
envy.set_app_system(1)
lock=e32.Ao_lock()
path.append('e:\\system\\apps\\SmartRAM')
ui.app.title=u"SmartRAM"
def bars():
bg=Image.open('e:\\1\\bg.png')
b.blit(bg)
def ur(x):
return x.encode('utf-8')
def ru(x):
return x.decode('utf-8')
ui.app.body=b=ui.Canvas(redraw_callback=bars)
bars()
lock.wait()
Функция bars() включается при запуске программы, а после открытия/закрытия меню, свёртывания/развертывания программы остаетсЯ белый экран, хотя я указал ui.app.body=b=ui.Canvas(redraw_callback=bars)
igor.kaist
Потому что согласно документации, функции, которая указывается в redraw_callback передается один аргумент - тьюпл с координатами области, которые должны быть перерисованы, ваша функция не принимает ни одного аргумента.
P.S. хм, каждый раз делать открытие изображения не правильно с точки зрения производительности
R.Ll.S.h57
Поясню: возбуждается исключение TypeError: bars() takes exactly 1 argument (0 given), но вы его не видите т. к. на экране Canvas. Если бы вы запаковали данный скрипт в sis, то в этот момент прога бы вылетала из-за непойманого исключения.
igor.kaist
R.Ll.S.h57, ну тогда можно еще больше пояснить :)
...
def bars(rect): # хотя я обычно пишу rect=None если еще и сам эту функцию юзаю
...
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