我有一个Qt应用程序,它运行在带有KDE等离子桌面的Ubuntu12.04服务器上。如果我使用QT4.8进行编译,那么全屏就会像预期的那样工作。在Qt5.3中,窗口越来越大,超过了可用的分辨率。如果我使用以下代码设置分辨率,它就能工作。
QSize sz(QApplication::desktop()->size());
main_window->setFixedSize(sz.width() + 1, sz.height() + 1);
main_window->showFullScreen();这是解决这个问题的正确办法吗?
提前谢谢。
发布于 2014-10-24 08:37:22
Qt在应用程序调整方面非常灵活,并为您提供了许多信息(和选项)。
对于QApplication所关心的问题,您可以使用QDesktopWidget。
QDesktopWidget * screen = QApplication::desktop();
screen->availableGeometry();正如有关availableGeometry的文档中所述
返回具有索引屏幕的屏幕的可用几何形状。可用的将是基于平台确定的可用(例如,不包括Mac上的停靠条和菜单栏,或者不包括screenGeometry上的任务栏)的screenGeometry()。如果屏幕为-1,则使用默认屏幕。
阅读QDesktopWidget文档中“主屏幕的使用”一节,了解有关“默认屏幕”和多个屏幕的一般处理的详细信息。使用这些方法,即使有多个可用的屏幕,您也可以完全控制应用程序的布局方式。
对于QGuiApplication所关心的问题,可以使用QScreen
QScreen * screen = QGuiApplication::primaryScreen();
screen->availableGeometry();最后,在QML中,可以(也是最好的)使用Screen对象,它提供了Screen.desktopAvailableWidth和Screen.desktopAvailableHeight,这确保了在不同版本的Android中进行适当的调整。
https://stackoverflow.com/questions/26532790
复制相似问题