【问题标题】:Fit QML file to screen使 QML 文件适合屏幕
【发布时间】:2011-11-15 11:37:24
【问题描述】:

我为诺基亚 n8 创建了一个屏幕分辨率为 640 x 360 的应用程序。它包括很多 flickables、标签等。我希望它在 nokia e6 上运行,分辨率为 640 x 480。

到目前为止,我只是简单地复制了 QML 文件并对其进行了修改以适应新的分辨率,但每次更新都变得有点烦人。我想知道是否有任何简单的方法可以让它自动适应任何屏幕分辨率的输出?或者,如果我可以做其他事情来简化我的任务。我宁愿不使用锚点,因为它使设计 QML 文件变得过于复杂。

【问题讨论】:

    标签: qt resize symbian resolution qml


    【解决方案1】:

    使用QApplication::desktop()->availableGeometry() 设置应用程序窗口的几何形状怎么样?

    来自文档:

    QDesktopWidget::availableGeometry()

    返回带有索引屏幕的屏幕的可用几何图形。可用的内容将是 screenGeometry() 的子区域,具体取决于平台决定可用的内容(例如,不包括 Mac OS X 上的停靠栏和菜单栏,或 Windows 上的任务栏)。

    在下面解决您的评论:

    它会重新调整整个屏幕的大小

    QDesktopWidget::availableGeometry() const 中的const 告诉您,您可以确定该函数不会改变任何内容。您需要自己调整大小。

    编辑:QML docs 应该为您提供自动更改应用程序几何结构所需的信息。您可以从 C++ 更改 QML 对象的几何图形,或者将可用的屏幕几何图形定义为 Q_PROPERTY 并从 QML 访问它。我推荐前者,因为连接到 signal QDesktopWidget::workAreaResized 可能会帮助您在可用几何形状可能发生变化的移动设备上。

    【讨论】:

    • 我只是不明白这只是告诉我屏幕分辨率还是重新调整整个屏幕的大小?
    • 我可能听起来很愚蠢,但你所说的改变 qml 对象的几何形状是什么意思?你的意思是我可以改变每个东西的大小还是我必须单独改变每个东西的大小?
    【解决方案2】:

    实际上,您应该避免逐像素硬编码界面并开始使用锚点。将会有一些手机具有另一种屏幕分辨率,然后您必须为每个手机创建新的 QML。使用锚点,您可以让内容填满所有可用空间

    【讨论】:

    • 谢谢 我确实注意到了,但我有点懒,我只是想知道是否有更简单的方法?
    • qml中如何获取屏幕宽高?
    猜你喜欢
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 2016-08-09
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    相关资源
    最近更新 更多