在Qt Creator中,程序的显示在QWidget中提供了一些方法,
show(); ---正常显示
showMaximized(); ---窗口最大化
showMinimized(); ---窗口最小化
showFullScreen(); ---全屏显示
如果想要在windows中正常显示窗口,但却想在模拟器或者真机上全屏显示程序, 就需要用到一些用来条件编译的宏了。这些宏是Qt为了实现跨平台的程序,从而在不同的平台上编译不同的代码,这些宏如下:
Q_WS_SIMULATOR --模拟器
Q_OS_SYMBIAN --Symbian设备
Q_OS_WIN --windows环境
那么要实现上面的显示的话,以下代码就ok了。
#ifdef Q_WS_SIMULATOR showFullScreen(); //模拟器上的全屏 #elif defined(Q_OS_SYMBIAN) showFullScreen(); //Symbian设备上的全屏 #elif defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6) showMaximized(); //maemo设备上最大化显示 #else show(); //其他的都正常显示 #endif
如果想只隐藏掉Symbian中的状态栏,可以在窗口部件的构造函数中添加如下代码:
QWidget::setWindowFlags(windowFlags() | Qt::WindowSoftkeysVisibleHint);
并且让程序全屏显示ShowFullScreen();
同样的想要只现在状态栏,而不想显示控制栏,则在构造函数中添加:
QWidget::setWindowFlags(windowFlags() ^ Qt::WindowSoftkeysVisibleHint);
并让程序最大化显示ShowMaximized();
获取设备的大小,可以使用 QApplication::desktop()->screenGeometry();
在QDesktopWidget类中提供了两个方法,availableGeometry()--返回的是实际屏幕的大小(全屏幕),比如windows中包括任务栏所占用的区域。
screenGeometry()--返回的是一般屏幕的大小,即未占用的区域,他们的返回值是Qrect。