Qt 5.3全屏问题

时间:2014-10-23 16:26:33

标签: c++ qt qt5.3

我有一个Qt应用程序,它运行在带有KDE等离子桌面的Ubuntu 12.04服务器上。如果我用Qt 4.8编译全屏工作按预期工作。使用Qt 5.3,窗口变得比可用分辨率更大。如果我使用以下代码设置分辨率,它就可以工作。

QSize sz(QApplication::desktop()->size());
main_window->setFixedSize(sz.width() + 1, sz.height() + 1);
main_window->showFullScreen();

这是解决此问题的正确方法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

Qt在应用程序大小调整方面非常灵活,并为您提供了大量信息(和选项)。

对于QApplication关注的问题,您可以使用QDesktopWidget

QDesktopWidget * screen = QApplication::desktop(); 
screen->availableGeometry();

如关于availableGeometry的文档中所述:

  

使用索引屏幕返回屏幕的可用几何图形。什么   可用的将是基于什么的screenGeometry()   平台决定可用(例如,不包括停靠栏和菜单   Mac OS X上的栏或Windows上的任务栏)。默认屏幕是   如果屏幕为-1,则使用。

请阅读QDesktopWidget文档中“使用主屏幕”部分,了解有关“默认屏幕”和多个屏幕的常规处理的详细信息。使用这些方法,即使有多个屏幕,您也可以在应用程序布局方式上进行完全控制

对于QGuiApplication关注的问题,您可以使用QScreen

QScreen * screen = QGuiApplication::primaryScreen();
screen->availableGeometry();

最后,在QML中,可以(并且建议)使用提供ScreenScreen.desktopAvailableWidth的{​​{1}}对象,以确保使用不同版本的Android / iOS进行适当的大小调整。