Archived:Manuseio de layout dinâmico com QWidget
Qt Quick should be used for all UI development on mobile devices. The approach described in this article (based on QWidget) is deprecated.
Dados do artigo
Testado com
Compatibilidade
Artigo
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:
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

