Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QML ListView填充不透明度动画_Qt_Listview_Animation_Qml - Fatal编程技术网

Qt QML ListView填充不透明度动画

Qt QML ListView填充不透明度动画,qt,listview,animation,qml,Qt,Listview,Animation,Qml,我有一个列表视图,我想为填充视图转换创建淡入效果。但它并没有像预期的那样起作用。代理的初始不透明度似乎为1.0,因此我需要从动画的属性设置。 但它看起来像一个闪光。因此,我需要将代理的初始不透明度值设置为0.0 现在我有一个新问题。。。当我轻弹列表时,代理的默认不透明度为0.0,因此它们不可见。 所以我的问题是:有人能为ListView的populate属性创建一个完美的淡入动画吗 多谢各位 import QtQuick 2.9 Rectangle { id: root pro

我有一个
列表视图
,我想为
填充
视图转换创建淡入效果。但它并没有像预期的那样起作用。代理的初始不透明度似乎为1.0,因此我需要从动画的属性设置

但它看起来像一个闪光。因此,我需要将代理的初始不透明度值设置为
0.0

现在我有一个新问题。。。当我轻弹列表时,代理的默认不透明度为
0.0
,因此它们不可见。
所以我的问题是:有人能为ListView的
populate
属性创建一个完美的淡入动画吗

多谢各位

import QtQuick 2.9

Rectangle {
    id: root
    property alias model: list.model
    ListView {
        id: list
        width: 300; height: 500
        model: sampleModel
        spacing: 30
        footer: Item { width: 1; height: 30 }
        populate: Transition {
            id: _popuTrans
            SequentialAnimation {
                PauseAnimation {
                    duration: 100*_popuTrans.ViewTransition.index
                }
                NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; duration: 200 }
                PropertyAction { property: "opacity"; value: 1.0 }
            }
        }

        delegate: Component {
            Column {

                width: parent.width
                spacing: 13
                opacity: 0.0
                Rectangle {
                    width: parent.width*0.84
                    height: 1
                    color: colorPalette.altBackgroundColor
                    anchors.horizontalCenter: parent.horizontalCenter
                }
                Row {
                    width: parent.width
                    spacing: width*0.07
                    Text {
                        id: valueTxt
                        font { pointSize: 13 }
                        color: "black"
                        width: parent.width*0.64
                        text: model.body
                        wrapMode: Text.WordWrap
                        horizontalAlignment: Text.AlignRight
                    }
                    Text {
                        id: keyTxt
                        font { pointSize: 15; weight: Font.Medium }
                        color: "black"
                        width: parent.width*0.29
                        text: model.title
                        wrapMode: Text.WordWrap
                        horizontalAlignment: Text.AlignRight
                    }
                }
            }
        }
    }

    ListModel {
        id: sampleModel
        ListElement {
            title: "ابعاد"
            body: "عرض: 123mm\nطول: 650mm\nارتفاع: 17mm"
        }
        ListElement {
            title: "وزن"
            body: "1.3kg"
        }
        ListElement {
            title: "پردازنده"
            body: "Qualcomm Snapdragon 835 3.1GHz"
        }
        ListElement {
            title: "سیستم عامل"
            body: "Microsoft Windows 10 Starter"
        }
        ListElement {
            title: "رنگ‌ها"
            body: "قرمز، نوک مدادی، سفید"
        }
        ListElement {
            title: "اتصالات"
            body: "2 x USB 3.1 Gen 1 Type-A\n1 x Audio jack: headphone / mic-in\n1 x Combo Nano SIM (tray with needle)\n1 x MicroSD card reader slot (supports up to 256GB)\n1 x HDMI\n1 x DC in"
        }
        ListElement {
            title: "باتری"
            body: "Li-ion 8345mAh Turbo Charge Capable"
        }
        ListElement {
            title: "حافظه RAM"
            body: "DDR4 2x8GB AData"
        }


        ListElement {
            title: "ابعاد"
            body: "عرض: 123mm\nطول: 650mm\nارتفاع: 17mm"
        }
        ListElement {
            title: "وزن"
            body: "1.3kg"
        }
        ListElement {
            title: "پردازنده"
            body: "Qualcomm Snapdragon 835 3.1GHz"
        }
        ListElement {
            title: "سیستم عامل"
            body: "Microsoft Windows 10 Starter"
        }
        ListElement {
            title: "رنگ‌ها"
            body: "قرمز، نوک مدادی، سفید"
        }
        ListElement {
            title: "اتصالات"
            body: "2 x USB 3.1 Gen 1 Type-A\n1 x Audio jack: headphone / mic-in\n1 x Combo Nano SIM (tray with needle)\n1 x MicroSD card reader slot (supports up to 256GB)\n1 x HDMI\n1 x DC in"
        }
        ListElement {
            title: "باتری"
            body: "Li-ion 8345mAh Turbo Charge Capable"
        }
        ListElement {
            title: "حافظه RAM"
            body: "DDR4 2x8GB AData"
        }ListElement {
            title: "ابعاد"
            body: "عرض: 123mm\nطول: 650mm\nارتفاع: 17mm"
        }
        ListElement {
            title: "وزن"
            body: "1.3kg"
        }
        ListElement {
            title: "پردازنده"
            body: "Qualcomm Snapdragon 835 3.1GHz"
        }
        ListElement {
            title: "سیستم عامل"
            body: "Microsoft Windows 10 Starter"
        }
        ListElement {
            title: "رنگ‌ها"
            body: "قرمز، نوک مدادی، سفید"
        }
        ListElement {
            title: "اتصالات"
            body: "2 x USB 3.1 Gen 1 Type-A\n1 x Audio jack: headphone / mic-in\n1 x Combo Nano SIM (tray with needle)\n1 x MicroSD card reader slot (supports up to 256GB)\n1 x HDMI\n1 x DC in"
        }
        ListElement {
            title: "باتری"
            body: "Li-ion 8345mAh Turbo Charge Capable"
        }
        ListElement {
            title: "حافظه RAM"
            body: "DDR4 2x8GB AData"
        }ListElement {
            title: "ابعاد"
            body: "عرض: 123mm\nطول: 650mm\nارتفاع: 17mm"
        }
        ListElement {
            title: "وزن"
            body: "1.3kg"
        }
        ListElement {
            title: "پردازنده"
            body: "Qualcomm Snapdragon 835 3.1GHz"
        }
        ListElement {
            title: "سیستم عامل"
            body: "Microsoft Windows 10 Starter"
        }
        ListElement {
            title: "رنگ‌ها"
            body: "قرمز، نوک مدادی، سفید"
        }
        ListElement {
            title: "اتصالات"
            body: "2 x USB 3.1 Gen 1 Type-A\n1 x Audio jack: headphone / mic-in\n1 x Combo Nano SIM (tray with needle)\n1 x MicroSD card reader slot (supports up to 256GB)\n1 x HDMI\n1 x DC in"
        }
        ListElement {
            title: "باتری"
            body: "Li-ion 8345mAh Turbo Charge Capable"
        }
        ListElement {
            title: "حافظه RAM"
            body: "DDR4 2x8GB AData"
        }ListElement {
            title: "ابعاد"
            body: "عرض: 123mm\nطول: 650mm\nارتفاع: 17mm"
        }
        ListElement {
            title: "وزن"
            body: "1.3kg"
        }
        ListElement {
            title: "پردازنده"
            body: "Qualcomm Snapdragon 835 3.1GHz"
        }
        ListElement {
            title: "سیستم عامل"
            body: "Microsoft Windows 10 Starter"
        }
        ListElement {
            title: "رنگ‌ها"
            body: "قرمز، نوک مدادی، سفید"
        }
        ListElement {
            title: "اتصالات"
            body: "2 x USB 3.1 Gen 1 Type-A\n1 x Audio jack: headphone / mic-in\n1 x Combo Nano SIM (tray with needle)\n1 x MicroSD card reader slot (supports up to 256GB)\n1 x HDMI\n1 x DC in"
        }
        ListElement {
            title: "باتری"
            body: "Li-ion 8345mAh Turbo Charge Capable"
        }
        ListElement {
            title: "حافظه RAM"
            body: "DDR4 2x8GB AData"
        }
    }
}

闪烁是由于您的
暂停图像
,不透明度在其整个持续时间内保持为1。下面是一个漂亮的图表,显示了在
populate
转换期间代理的不透明度随时间的变化:

暂停动画
之前,您需要将代理的不透明度设置为0,并且在
填充
转换中,而不是直接在代理中(转换仅应用于可见代理,这就是为什么内容区域下方的代理保持不可见)

为此,请删除代理中的
opacity:0
,只需在转换中的
pauseAimation
之前添加一个
PropertyAction

populate: Transition {
    id: _popuTrans
    SequentialAnimation {
        PropertyAction { property: "opacity"; value: 0.0 }
        PauseAnimation { duration: 100*_popuTrans.ViewTransition.index }
        NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; duration: 200; easing.type: Easing.InOutQuad }
    }
}

闪烁是由于您的
暂停图像
,不透明度在其整个持续时间内保持为1。下面是一个漂亮的图表,显示了在
populate
转换期间代理的不透明度随时间的变化:

暂停动画
之前,您需要将代理的不透明度设置为0,并且在
填充
转换中,而不是直接在代理中(转换仅应用于可见代理,这就是为什么内容区域下方的代理保持不可见)

为此,请删除代理中的
opacity:0
,只需在转换中的
pauseAimation
之前添加一个
PropertyAction

populate: Transition {
    id: _popuTrans
    SequentialAnimation {
        PropertyAction { property: "opacity"; value: 0.0 }
        PauseAnimation { duration: 100*_popuTrans.ViewTransition.index }
        NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; duration: 200; easing.type: Easing.InOutQuad }
    }
}

我也这么认为。但这不是唯一的问题。
填充
-转换似乎存在一些问题。一旦给它分配了任何内容,它就会把实例化搞砸。@derM这在这里似乎工作得很好,有什么问题吗?如果我有一个简单的
ListView{model:100;anchors.fill:parent;space:3;delegate:Rectangle{width:100;height:20;color:“red”}
我在屏幕上画了一些比如说20个矩形。一旦我将任何转换设置为
populate
这就中断了-我只得到了一手,比如1或7或8画。。。我的猜测是,这与
ListView
s忽略布局上完全透明的元素有关。这可能与填充
应用程序窗口时更改
列表视图的大小有关。我会调查的,我也这么认为。但这不是唯一的问题。
填充
-转换似乎存在一些问题。一旦给它分配了任何内容,它就会把实例化搞砸。@derM这在这里似乎工作得很好,有什么问题吗?如果我有一个简单的
ListView{model:100;anchors.fill:parent;space:3;delegate:Rectangle{width:100;height:20;color:“red”}
我在屏幕上画了一些比如说20个矩形。一旦我将任何转换设置为
populate
这就中断了-我只得到了一手,比如1或7或8画。。。我的猜测是,这与
ListView
s忽略布局上完全透明的元素有关。这可能与填充
应用程序窗口时更改
列表视图的大小有关。我会调查的。