2

我有一个 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();

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

提前致谢。

4

1 回答 1

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.desktopAvailableWidthScreen.desktopAvailableHeight确保在不同版本的 Android/iOS 上正确调整大小的对象。

于 2014-10-24T08:37:22.677 回答