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. Thanks for all your past and future contributions.

Archived:Dynamic Layout handling with QWidget

From Wiki
Jump to: navigation, search

Archived.pngArchived: This article is archived because it is not considered relevant for third-party developers creating commercial solutions today. If you think this article is still relevant, let us know by adding the template {{ReviewForRemovalFromArchive|user=~~~~|write your reason here}}.

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
Code ExampleTested with
Devices(s): S60 Emulator
Platform(s): S60 3rd Edition FP1, S60 3rd Edition FP2, S60 5th Edition
Created: symbianyucca (10 Apr 2009)
Last edited: hamishwillee (11 Oct 2012)

Dynamic Layout handling with QWidget

To be able to catch the layout change event, you first need to install event filter, which will give you then the events when layout changes happen. This can be done for example in the main.cpp, in where you can use installEventFilter function of the QApplication to install a filter, for example like this:

QApplication a(argc, argv);
QtEggAlarm w;

The event filter class then needs to implement eventFilter function which will then be called when events happen. For layout changes a QEvent::Resize event will be generated, thus you could catch the event in the event filter as follows:

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

Note that if the return value is false, then the event will be given to other filters, and if it is true, it will not be forwarded to other components.

Then If you want to Widget to fill the whole client area in S60 device, the SetScreenSizeAndPosition function could be implemented as follows:

void QtEggAlarm::SetScreenSizeAndPosition(void)

Screen shots

QEggAlarm 1.JPG QEggAlarm 2.JPG

Example project

This page was last modified on 11 October 2012, at 01:14.
57 page views in the last 30 days.