因此,不要用这样的方式猜测:
ConditionalLayout
{
name: "column"
when: layouts.width > units.gu(50)
Column
{...
它会是这样的:
ConditionalLayout
{
name: "column"
when: layouts.landscape == true
Column
{...
答案1
您可以使用 [QtQuick.Window][1] API 来访问Qt::屏幕方向(要求 Qt >= 5.1,14.04 提供 5.2):
- Qt.PrimaryOrientation:显示器的主要方向。
- Qt.LandscapeOrientation:横向,显示宽度大于显示高度。
- Qt.PortraitOrientation:纵向方向,显示高度大于显示宽度,相对于横向顺时针旋转 90 度。
- Qt.InvertedLandscapeOrientation:倒置横向方向,相对于横向旋转180度。
- Qt.InvertedPortraitOrientation:反转纵向方向,相对于纵向旋转 180 度。
如果检测到横向方向,以下代码将修改布局:
import QtQuick 2.1
import QtQuick.Window 2.1
ConditionalLayout
{
name: "column"
when: Screen.orientation == Qt.LandscapeOrientation
Column
{...