×
Namespaces

Variants
Actions
Revision as of 01:56, 19 December 2011 by hamishwillee (Talk | contribs)

Archived:Como alterar o tamanho da tela em PySymbian

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Artigo
Tradução:
Por maiconherverton
Última alteração feita por hamishwillee em 19 Dec 2011

Contents

Resumo

Este artigo mostra como alterar em tempo de execução o ecrã de uma aplicação PyS60 (Python). O código de exemplo suporta qualquer tamanho de tela e rotação padrões da S60.

Pré-condições

Uma aplicação por padrão utiliza um ecrã normal como exibição. A área atualmente utilizada pode ser recuperada e definida usando a tela tela (screen) atribuindo uma instância a aplicação.


Os possíveis modos de tela são:

  • 'normal' - título, painel e softkeys área são visíveis (padrão)
  • 'Grandes' - Apenas as softkeys são visíveis
  • 'Cheia' - a aplicação do corpo ocupa todo o ecrã; sobre S60 5a edição, tem o mesmo efeito que a 'grande', ou seja, o espaço é ainda visível de softkeys
  • 'full_max' - introduzido em PySymbian 1.9.4; em S60 3rd Edição tem o mesmo efeito de "Cheia" e sobre S60 5a edição, o pedido do corpo ocupa a tela inteira, incluindo a área de softkeys

Código fonte

import e32, appuifw, graphics
 
 
#Variáveis globais para controle da aplicação
app_lock = e32.Ao_lock()
my_timer = e32.Ao_timer()
 
#Variávies globais para aplicação UI
canvas = None
img = None
 
def cb_quit():
'''Callback for exit, do clean-up'''
my_timer.cancel()
app_lock.signal()
 
def cb_handle_redraw(dummy = (0, 0, 0, 0)):
'''Overwrite default screen redraw event handler'''
#Isto pode ser chamado automaticamente antes que a img é criada
if img:
canvas.blit(img)
 
def cb_handle_resize(dummy=(0, 0, 0, 0)):
'''Overwrite default screen resize event handler'''
global img
#Isto pode ser chamado automaticamente antes de criar o canvas
if canvas:
#Criar uma imagem colorida de tela cheia
img = graphics.Image.new(canvas.size)
img.clear(0x33CC00)
 
#Inicialização da aplicação UI
appuifw.app.screen = 'full'
canvas = appuifw.Canvas(resize_callback = cb_handle_resize,
redraw_callback = cb_handle_redraw)
appuifw.app.body = canvas
appuifw.app.exit_key_handler = cb_quit
 
#Inicializa a aplicação
cb_handle_resize()
 
#Visualizar os 3 layouts possíveis com uma pausa entre elas de 3 segundos
try:
# full_max only in PySymbian 1.9.4, removed after that
appuifw.app.screen = 'full_max'
cb_handle_redraw()
my_timer.after(3)
except:
appuifw.app.screen = 'full'
cb_handle_redraw()
my_timer.after(3)
 
appuifw.app.screen = 'large'
cb_handle_redraw()
my_timer.after(3)
 
appuifw.app.screen = 'normal'
cb_handle_redraw()
 
#Espera que o usuário escolha a saida
app_lock.wait()

Pré-condição

3 Exemplos possíveis são:

Tela cheia
Tela grande
Tela normal
85 page views in the last 30 days.
×