Archived:在Qt中监听屏幕方向改变
文章信息
测试基于
设备:: Nokia 5800 XpressMusic
兼容于
平台: S60 3rd Edition, FP1, FP2
S60 5th Edition
S60 5th Edition
文章
关键词: QWidget::resizeEvent(), QMainWindow::resizeEvent()
翻译:
由 dougcn
最后由 hamishwillee
在 11 Oct 2012 编辑
Contents |
概述
此代码片段演示如何监听屏幕/布局方向的改变。当使用Qt布局管理器时,通常不需要关心布局改变,布局管理器负责处理。
在不使用布局管理器的自定义UI应用中必须通过实现虚函数QWidget::resizeEvent()来处理屏幕方向和大小的变化。
注: 要使用这段代码,需要在你的平台上装有Qt。
前提条件
- 从这里安装Qt Garden发行版: Qt "Garden" pre-release
- 参看安装指南: How to install the package
源代码
方案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);
}
参看
后置条件
布局方向和大小的变更被处理了。


(no comments yet)