×
Namespaces

Variants
Actions
Revision as of 04:14, 11 October 2012 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Archived:Manuseio de layout dinâmico com QWidget

From Nokia Developer 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}}.

Qt Quick should be used for all UI development on mobile devices. The approach described in this article (based on QWidget) is deprecated.

Article Metadata

Testado com
Aparelho(s): S60 Emulator

Compatibilidade
Plataforma(s): S60 3rd Edition FP1, S60 3rd Edition FP2, S60 5th Edition
Symbian

Artigo
Tradução:
Por valderind4
Última alteração feita por hamishwillee em 11 Oct 2012

Manuseio de layout dinâmico com QWidget

Para ser capaz de capturar o evento de troca de layout, você primeiro necessita instalar o filtro de eventos, que dará a você, os eventos quando a troca de layout acontecer. Isto pode ser feito por exemplo no main.cpp, onde você pode usar a função installEventFilter do QApplication para instalar um filtro, por exemplo como este:

QApplication a(argc, argv);
QtEggAlarm w;
a.installEventFilter(&w);

A classe filtro de evento, necessita implementar a função eventFilter, que será chamada quando ocorrerem os eventos. Para mudanças de layout um evento QEvent::Resize, será gerado, assim você poderia capturar o envento no seguinte filtro de eventos:

bool QtEggAlarm::eventFilter(QObject* /*receiver*/, QEvent* event)
{
if(event->type() == QEvent::Resize)
{
SetScreenSizeAndPosition();
return true;
}
 
 
return false;
}

Note que se o valor de retorno é false, então o evento será passado para outros filtros, e se ele for true, ele não sera enviado para outros componentes.

Então se você deseja widget para preencher a área de clientes em dispositivos S60, a função SetScreenSizeAndPosition poderia ser implementada como segue:

void QtEggAlarm::SetScreenSizeAndPosition(void)
{
setGeometry(QApplication::desktop()->availableGeometry());
}


Capturas de tela

QEggAlarm 1.JPG QEggAlarm 2.JPG


Projeto exemplo

File:QtEggAlarm.zip

This page was last modified on 11 October 2012, at 04:14.
88 page views in the last 30 days.
×