Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Archived:Como alterar o tamanho da tela em PySymbian

From Wiki
Jump to: navigation, search

Archived.pngAquivado: Este artigo foi arquivado, pois o conteúdo não é mais considerado relevante para se criar soluções comerciais atuais. Se você achar que este artigo ainda é importante, inclua o template {{ForArchiveReview|escreva a sua justificativa}}.

Acredita-se que este artigo ainda seja válido no contexto original (quando ele foi escrito)


Article Metadata

Artigo
Tradução:
Por maiconherverton
Última alteração feita por hamishwillee em 31 May 2013

Contents

Resumo

Este artigo mostra como alterar em tempo de execução a tela de uma aplicação PySymbian (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 uma tela 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 toda tela; 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
This page was last modified on 31 May 2013, at 01:02.
270 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.

×