【问题标题】:Qt 5.3 full screen issueQt 5.3 全屏问题
【发布时间】:2014-10-23 16:26:33
【问题描述】:

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

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

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

提前致谢。

【问题讨论】:

    标签: c++ qt qt5.3


    【解决方案1】:

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

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

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

    如有关availableGeometry 的文档中所述:

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

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

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

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

    最后,在 QML 中,可以(并且建议)使用 Screen 对象,该对象提供 Screen.desktopAvailableWidthScreen.desktopAvailableHeight,确保在不同版本的 Android/iOS 中正确调整大小。

    【讨论】:

      猜你喜欢
      • 2014-08-07
      • 1970-01-01
      • 2014-07-18
      • 1970-01-01
      • 2013-03-18
      • 2012-05-12
      • 1970-01-01
      • 2014-10-10
      • 1970-01-01
      相关资源
      最近更新 更多