2011-11-24 6 views
0

Привет, У меня есть телефон Nokia 5800, на котором я занимаюсь программированием pys60 ui. Я использовал приведенный ниже код для создания стрелки. Короче говоря, 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() 

Вот как это выглядит, когда я держу телефон вверх.

Held Straight

Вот как это выглядит, когда я наклонил ее.

Tilted

ответ

1

Обратите внимание, что пространство, которое имеет текст (в landspace) имеет размер по ширине минус ширине она была, когда ориентация была портрета. Вы забываете изменить размер холста на новые пейзажи?

Кажется, что текст - это выход в консоль, проверьте, что не определено, и что еще там выводится.

+0

Как вы изменить размер использовать весь экран? – deostroll

0
appuifw.app.orientation = 'portrait' 

или даже:

appuifw.app.orientation = 'landscape'