Мусорный текст рисуется на экране при наклоне
Привет, у меня есть телефон Nokia 5800, на котором я занимался программированием интерфейса pys60. Я использовал приведенный ниже код для создания стрелки. Короче, draw() нарисует стрелку на поверхности холста. Холст имеет redraw_callback и resize_callback, подключенные для вызова draw() в конце концов. Но при наклоне я получаю некоторый случайный текст (мусор), выводимый на экран.
import appuifw
from appuifw import *
import e32
from graphics import *
def up(dummy):
appuifw.note(u'Button 1 Clicked', 'note')
def down(dummy):
appuifw.note(u'Button 2 Clicked', 'note')
appuifw.app.screen = 'normal'
def on_resize(dummy):
draw()
def on_redraw(dummy):
draw()
def on_exit():
global lock
lock.signal()
def draw():
global canvas
canvas.clear()
canvas.polygon((20,20,20,60,40,40,20,20), fill=(255,0,0), width=10)
canvas = appuifw.Canvas(resize_callback=on_resize, redraw_callback=on_redraw)
lock = e32.Ao_lock()
appuifw.exit_key_handler = on_exit
draw()
lock.wait()
Вот как это выглядит, когда я держу телефон прямо.
Вот как это выглядит, когда я наклонил его.
2 ответа
Обратите внимание, что пространство, в котором находится текст (в пространстве), имеет размер ширины минус ширина, которая была, когда ориентация была портретной. Вы забыли изменить размер холста, чтобы он соответствовал новым измерениям ландшафта?
Кажется, что текст - это вывод на консоль, проверьте, что не определено и что там выводится.
appuifw.app.orientation = 'portrait'
или даже:
appuifw.app.orientation = 'landscape'