×
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.
183 page views in the last 30 days.
×