Scrollview中的矩形不可见

时间:2016-11-06 19:35:02

标签: qt qml qtquick2 qtquickcontrols

我创建了一个新项目,并添加了一个带矩形的滚动视图。当我启动项目时,不显示矩形,但如果我添加其他控件,则会显示。我不确定自己做错了什么,我想总是看到这个矩形。

import QtQuick 2.7
import QtQuick.Window 2.2
import QtQuick.Controls 1.4

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
    id: mainWindow
    ScrollView{
        anchors.left: parent.left
        anchors.top: parent.top
        anchors.bottom: parent.bottom
        anchors.topMargin: 0
        anchors.bottomMargin: 0
        width: 289
        Rectangle{
            anchors.fill: parent
            color: "blue"
            MouseArea
            {
                anchors.fill: parent
                onClicked: console.log("Click")
            }
        }
    }
}

使用此代码,我得到以下窗口(矩形不可见): enter image description here

但是,如果我向此ScrollView添加一个按钮......

 ScrollView{
        anchors.left: parent.left
        anchors.top: parent.top
        anchors.bottom: parent.bottom
        anchors.topMargin: 0
        anchors.bottomMargin: 0
        width: 289
        Rectangle{
            anchors.fill: parent
            color: "blue"
            MouseArea
            {
                anchors.fill: parent
                onClicked: console.log("Click")
            }
        }
        Button{
            text:"Test"
        }
    }

出现矩形: enter image description here

我的第一个代码(没有按钮)出了什么问题?

1 个答案:

答案 0 :(得分:2)

ScrollView有两种尺寸,UI中控件视图的大小以及ScrollView内容的大小。

当您添加Rectangle而没有Button时,您会指示Rectangle填写parent。在这种情况下,parentScrollView的内容。默认情况下,内容为空,并且您已指示Rectangle填充此空白区域。因此没有任何显示。

当您添加具有明确大小的Button时,它会强制ScrollView的内容为非空,所以现在Rectangle有一些要填充的内容,因此您看到它。