Qt 具有图像和文本涉水栏布局的代理

Qt 具有图像和文本涉水栏布局的代理,qt,qml,Qt,Qml,我有以下QML项目: 一切正常,但Listview代理的图像正在浏览ColumnLayout,如屏幕截图所示: 这不应该发生,但为什么会发生呢?根据user@BaCaRoZzo提示,下面是正在运行的代码: import QtQuick 2.0 import QtQuick.Layouts 1.2 import si.mikroelektronika 1.0 Item { id: ueCategorySelector clip: true Rectangle

我有以下QML项目:

一切正常,但Listview代理的图像正在浏览ColumnLayout,如屏幕截图所示:
这不应该发生,但为什么会发生呢?

根据user@BaCaRoZzo提示,下面是正在运行的代码:

import QtQuick 2.0
import QtQuick.Layouts 1.2

import si.mikroelektronika 1.0

Item
{
    id: ueCategorySelector

    clip: true

    Rectangle
    {
        id: ueCategorySelectorWrapper

        radius: 16
        gradient: Gradient
        {
            GradientStop
            {
                position: 0
                color: "#ffffff"
            }   // GradientStop

            GradientStop
            {
                position: 1
                color: "#000000"
            }   // GradientStop
        }   // Gradient

        border.color: "#4682b4"
        border.width: 1

        antialiasing: true

        anchors.fill: parent

        ColumnLayout
        {
            anchors.margins: parent.radius/2

            spacing: 0
            antialiasing: true

            anchors.fill: parent

            ListView
            {
                id: ueCategoryListView
                antialiasing: true

                orientation: ListView.Horizontal
                clip: true

                Layout.fillWidth: true
                Layout.fillHeight: true
                Layout.alignment: Qt.AlignHCenter|Qt.AlignVCenter
                Layout.margins: 8

                spacing: 8

                model: ueCategoriesModel

                delegate: Rectangle
                {
                    radius: 16

                    width: 256
                    height: ueCategoryListView.height-2*Layout.margins

                    clip: true

                    border.color: "#4682b4"

                    antialiasing: true

                    gradient: Gradient
                    {
                        GradientStop
                        {
                            position: 0
                            color: "#000000"

                            ParallelAnimation on color
                            {
                                loops: 1
                                running: ueDelegateMouseArea.pressed

                                ColorAnimation
                                {
                                    from: "#4682b4"
                                    to: "#000000"
                                    duration: 100
                                }   // ColorAnimation
                            }   // ParallelAnimation
                        }   // GradientStop

                        GradientStop
                        {
                            position: 1
                            color: "#ffffff"
                        }   // GradientStop
                    }   // Gradient

                    MouseArea
                    {
                        id: ueDelegateMouseArea

                        anchors.fill: parent
                    }   // MouseAres

                    ColumnLayout
                    {
                        anchors.fill: parent

                        antialiasing: true

                        spacing: 8

                        Image
                        {
                            Layout.fillWidth: true
                            Layout.fillHeight: true
                            Layout.alignment: Qt.AlignHCenter|Qt.AlignTop
                            Layout.topMargin: ueCategorySelectorWrapper.radius+4

                            fillMode: Image.PreserveAspectFit

                            horizontalAlignment: Image.AlignHCenter
                            verticalAlignment: Image.AlignVCenter

                            antialiasing: true
                            source: "image://ueCategoriesModel/"+model.ueRoleImage
                        }   // Image

                        Text
                        {
                            Layout.fillWidth: true
                            Layout.fillHeight: true
                            Layout.alignment: Qt.AlignHCenter|Qt.AlignBottom
                            Layout.bottomMargin: ueCategorySelectorWrapper.radius+4

                            color: "#000000"

                            text: model.ueRoleName
                            wrapMode: Text.WordWrap
                            font.family: "Courier"
                            textFormat: Text.RichText

                            font.bold: true
                            font.pointSize: 10

                            horizontalAlignment: Text.AlignHCenter
                            verticalAlignment: Text.AlignVCenter
                        }   // Text
                    }   // ColumnLayout
                }   // delegate
            }   // ListView
        }   // ColumnLayot
    }   // Rectangle
}   // Item

请清楚地说明你改变了什么。这将有助于未来可能出现类似问题的游客。
import QtQuick 2.0
import QtQuick.Layouts 1.2

import si.mikroelektronika 1.0

Item
{
    id: ueCategorySelector

    clip: true

    Rectangle
    {
        id: ueCategorySelectorWrapper

        radius: 16
        gradient: Gradient
        {
            GradientStop
            {
                position: 0
                color: "#ffffff"
            }   // GradientStop

            GradientStop
            {
                position: 1
                color: "#000000"
            }   // GradientStop
        }   // Gradient

        border.color: "#4682b4"
        border.width: 1

        antialiasing: true

        anchors.fill: parent

        ColumnLayout
        {
            anchors.margins: parent.radius/2

            spacing: 0
            antialiasing: true

            anchors.fill: parent

            ListView
            {
                id: ueCategoryListView
                antialiasing: true

                orientation: ListView.Horizontal
                clip: true

                Layout.fillWidth: true
                Layout.fillHeight: true
                Layout.alignment: Qt.AlignHCenter|Qt.AlignVCenter
                Layout.margins: 8

                spacing: 8

                model: ueCategoriesModel

                delegate: Rectangle
                {
                    radius: 16

                    width: 256
                    height: ueCategoryListView.height-2*Layout.margins

                    clip: true

                    border.color: "#4682b4"

                    antialiasing: true

                    gradient: Gradient
                    {
                        GradientStop
                        {
                            position: 0
                            color: "#000000"

                            ParallelAnimation on color
                            {
                                loops: 1
                                running: ueDelegateMouseArea.pressed

                                ColorAnimation
                                {
                                    from: "#4682b4"
                                    to: "#000000"
                                    duration: 100
                                }   // ColorAnimation
                            }   // ParallelAnimation
                        }   // GradientStop

                        GradientStop
                        {
                            position: 1
                            color: "#ffffff"
                        }   // GradientStop
                    }   // Gradient

                    MouseArea
                    {
                        id: ueDelegateMouseArea

                        anchors.fill: parent
                    }   // MouseAres

                    ColumnLayout
                    {
                        anchors.fill: parent

                        antialiasing: true

                        spacing: 8

                        Image
                        {
                            Layout.fillWidth: true
                            Layout.fillHeight: true
                            Layout.alignment: Qt.AlignHCenter|Qt.AlignTop
                            Layout.topMargin: ueCategorySelectorWrapper.radius+4

                            fillMode: Image.PreserveAspectFit

                            horizontalAlignment: Image.AlignHCenter
                            verticalAlignment: Image.AlignVCenter

                            antialiasing: true
                            source: "image://ueCategoriesModel/"+model.ueRoleImage
                        }   // Image

                        Text
                        {
                            Layout.fillWidth: true
                            Layout.fillHeight: true
                            Layout.alignment: Qt.AlignHCenter|Qt.AlignBottom
                            Layout.bottomMargin: ueCategorySelectorWrapper.radius+4

                            color: "#000000"

                            text: model.ueRoleName
                            wrapMode: Text.WordWrap
                            font.family: "Courier"
                            textFormat: Text.RichText

                            font.bold: true
                            font.pointSize: 10

                            horizontalAlignment: Text.AlignHCenter
                            verticalAlignment: Text.AlignVCenter
                        }   // Text
                    }   // ColumnLayout
                }   // delegate
            }   // ListView
        }   // ColumnLayot
    }   // Rectangle
}   // Item