QT Quick QML 应用程序支持多种显示尺寸

问题描述 投票:0回答:1

如何让 Qt Quick 应用程序在不同的屏幕尺寸上正确呈现?例如,屏幕尺寸 800x6001280x720

我应该如何构建应用程序窗口,使其在两种分辨率下看起来相同?我知道我们必须使用

anchors
,并避免
x, y
固定坐标,但我们需要为组件提供
Height
Width
,这会导致在两种不同分辨率下正确显示同一组件的问题。

我已阅读以下链接:
https://doc.qt.io/qt-5/scalability.html
https://doc.qt.io/archives/qt-4.8/scalability.html

Qt 建议构建两个独立的父布局听起来不合逻辑。

缩放方法是正确的选择吗?
QML 适合所有分辨率的屏幕

qt qml qtquick2 qt-quick
1个回答
0
投票

通常,当我处理可扩展性时,它是在智能手机环境中,它比您的情况有更多的可变性,但我认为同样的原则是成立的。

一般来说,我认为您不应该尝试缩放整个用户界面的逻辑像素比。我认为它应该保持在 1:1,其中 QML 中的一个逻辑屏幕单元(像素)等于 QML 之外的一个逻辑屏幕单元(像素)。

主要原因是您通常至少有两种不同的宽高比:在您的情况下,800x600 是 4:3,1280x720 是 16:9。当长宽比不匹配时,如果您的 UI 本身选择其中一个长宽比并尝试在两者上显示全屏(假设您不想向任一方向拉伸 UI 的图像 - 这对于 UI 来说几乎没有任何意义)。

因此,我通常做的是使用 RowLayout 和 ColumnLayout,并在 UI 本身上适当设置 fillWidth 和 fillHeight,以便随着屏幕尺寸的变化,UI 的适当内部区域会拉伸以容纳更大或更少的空间。这与网络应用程序中用于适应各种窗口大小的原理相同。

实现此目的的一个好方法是在您的桌面环境(Mac 或 Windows)中构建应用程序,然后仅调整窗口大小并查看您的布局如何适应不同的屏幕尺寸。一旦您根据必须处理的大小范围合理地布局了它,那么您就可以针对您的目标环境进行构建,并且它应该运行良好。

© www.soinside.com 2019 - 2024. All rights reserved.