×
Namespaces

Variants
Actions

Archived:在Qt中监听屏幕方向改变

From Nokia Developer Wiki
Jump to: navigation, search

Archived.png存档: 这篇文章是存档,因为考虑到今天它与第三方开发者建立商业解决方案不相关。

Qt Quick should be used for all UI development on mobile devices. The approach described in this article (using C++ for the Qt app UI) is deprecated.

Article Metadata

测试基于
设备:: Nokia 5800 XpressMusic

兼容于
平台: S60 3rd Edition, FP1, FP2
S60 5th Edition
Symbian

文章
关键词: QWidget::resizeEvent(), QMainWindow::resizeEvent()
翻译:
dougcn
最后由 hamishwillee 在 11 Oct 2012 编辑


Contents

概述

此代码片段演示如何监听屏幕/布局方向的改变。当使用Qt布局管理器时,通常不需要关心布局改变,布局管理器负责处理。

在不使用布局管理器的自定义UI应用中必须通过实现虚函数QWidget::resizeEvent()来处理屏幕方向和大小的变化。

: 要使用这段代码,需要在你的平台上装有Qt。


前提条件


源代码

方案1: 从QResizeEvent得到新的大小

void QMyWidget::resizeEvent (QResizeEvent* event)
{
QSize widgetSize = event->size();
// TODO: You have new size of the screen
// do your new layout
 
// Call base class impl
QWidget::resizeEvent(event);
}

方案2: 从QMainWindow的中央widget得到新的大小。

void QMyMainWindow::resizeEvent (QResizeEvent* event)
{
QSize widgetSize = centralWidget()->size();
// TODO: You have new size of the screen
// do your new layout
 
// Call base class impl
QMainWindow::resizeEvent(event);
}


参看


后置条件

布局方向和大小的变更被处理了。

This page was last modified on 11 October 2012, at 04:15.
260 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.

×