×
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
69 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×