OESF Portables Forum
Everything Else => Zaurus - Everything Development => Distros, Development, and Model Specific Forums => Archived Forums => Qt/Qtopia => Topic started by: vanstrien on September 19, 2004, 04:37:29 am
-
I'm writing a qtopia app which I would like to have a different graphical template depending on if it is running on my 5500 or 860. Since I'm using images I will need to scale the images up by a factor if they are on the 860.
Anyone know the options for detecting the resolution (so I can then set a scale factor) from qpeapplication?
I have looked at doing it from my main qwidget (with width() and height()) but I tend to not get the right info at the beginning of the app anyway.
I would also like to use a different layout if it is landscape versus portrait. For this I will probably just compare the width and height. If anyone has other suggestions please let me know.
-
With
QApplication::desktop()->width()
QApplication::desktop()->height()
you will get, what you need.
z.
-
Thanks. It works a treat. I had looked around for a while but hadn't come across those...
-
Is there an event that is emitted when the screen is rotated?
The only way I have been able to find to deal with rotation is to remember the original rotation, and if the rotation changes then scale everything to the different perspective.
ie.
original_rotation = AppLnk::rotation();
...
void draw() {
if (original_rotation != AppLnk::rotation()) scale();
...
}
-
The Opie launcher sends setRotation via QCOP to QPE/System. See
Opie-Camera (http://cvs.handhelds.org/cgi-bin/viewcvs.cgi/opie/noncore/multimedia/camera/gui/mainwindow.cpp?annotate=1.7) for how to receive rotation notifications and act upon them.
Note that I'm not sure if Qtopia does the same.
-
When the screen is rotated, it causes a QResizeEvent to be emitted. In your main widget (or any widget), you can override the 'resizeEvent' function to handle this.
For example:
void myApp::resizeEvent( QResizeEvent * ev )
{
// change layout according to screen orientation
if( ev->size().width() > ev->size().height() ) {
// landscape mode
} else {
// portrait mode
}
QWidget::resizeEvent(ev);
}
- ashikase
anpachi, gifu, japan