QML中元素的大小

时间:2011-08-16 13:51:04

标签: qt qml

我是QML的新手。 据我所知,所有元素都有相关的宽度和高度,这决定了它们的大小。 如果用户更改屏幕分辨率,则最终输出看起来很奇怪。 有没有办法根据屏幕分辨率动态控制元素的大小?

1 个答案:

答案 0 :(得分:8)

您可以将根元素的heightwidth乘以因子,而不是使用固定值,这些因子决定了与根元素大小成比例的元素大小。此外,您可以使用QML anchors。有了这个,您可以创建完全可扩展的GUI:

import QtQuick 1.0

Item {
    id: root

    // default size, but scalable by user
    height: 300; width: 400

    Rectangle {
        id: leftPanel

        anchors {
            top: parent.top
            left: parent.left
            bottom: parent.bottom
        }
        width: root.width * 0.3
        color: "blue"
    }

    Rectangle {
        id: topPanel

        anchors {
            top: parent.top
            left: leftPanel.right
            right: parent.right
        }
        height: root.height * 0.2
        color: "green"
    }


    Rectangle {
        id: contentArea

        anchors {
            top: topPanel.bottom
            left: leftPanel.right
            right: parent.right
            bottom: root.bottom
        }
        color: "white"

        Text {
            text: "Hi, I'm scalable!"
            anchors.centerIn: parent
            font.pixelSize: root.width * 0.05
        }
    }
}

我不知道如何通过适用于所有环境的纯QML获得屏幕分辨率。

要确定移动设备上的屏幕分辨率,您可以使用QML Screen Element

在桌面应用程序中,您可以使用C ++获取屏幕分辨率(例如使用QDesktopWidget)并将其设为available in QML