Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 1, 2011 17:09:02

ReaL_HarDCorE
От:
Зарегистрирован: 2011-01-19
Сообщения: 84
Репутация: +  0  -
Профиль   Отправить e-mail  

Canvas

Почему то не работает 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)



Офлайн

#2 Фев. 1, 2011 17:54:00

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Canvas

Потому что согласно документации, функции, которая указывается в redraw_callback передается один аргумент - тьюпл с координатами области, которые должны быть перерисованы, ваша функция не принимает ни одного аргумента.
P.S. хм, каждый раз делать открытие изображения не правильно с точки зрения производительности



Офлайн

#3 Фев. 1, 2011 22:01:56

R.Ll.S.h57
От:
Зарегистрирован: 2010-02-25
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Canvas

Поясню: возбуждается исключение TypeError: bars() takes exactly 1 argument (0 given), но вы его не видите т. к. на экране Canvas. Если бы вы запаковали данный скрипт в sis, то в этот момент прога бы вылетала из-за непойманого исключения.



Отредактировано (Фев. 1, 2011 22:07:12)

Офлайн

#4 Фев. 1, 2011 22:37:58

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Canvas

R.Ll.S.h57, ну тогда можно еще больше пояснить :)

...
def bars(rect): # хотя я обычно пишу rect=None если еще и сам эту функцию юзаю
...



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version