我有一个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();
这是解决此问题的正确方法吗?
提前致谢。
答案 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中,可以(并且建议)使用提供Screen
和Screen.desktopAvailableWidth
的{{1}}对象,以确保使用不同版本的Android / iOS进行适当的大小调整。