gpt4 book ai didi

qt - QML ListElement 传递字符串列表

转载 作者:行者123 更新时间:2023-12-02 11:54:00 26 4
gpt4 key购买 nike

我有一个listview谁的代表中有一个中继器,应该由文本填充。如果中继器的模型属性是这样硬编码的:

model: ['String 1', 'String 2', 'String 3'];

它可以完美地在中继器区域显示 3 个项目。
但是,我想使用 ListElement 发送这样的列表。这就是我尝试过的:

ListElement{
shape: "Circle"; colors: ['Red', 'Blue'];
}

不幸的是,这种方法不起作用并引发错误:

ListElement: cannot use script for property value

有多少人能做到这一点? TIA

最佳答案

You can't :

Values must be simple constants; either strings (quoted and optionally within a call to QT_TR_NOOP), boolean values (true, false), numbers, or enumeration values (such as AlignText.AlignHCenter).

向 View 公开数据的最强大方法是创建 C++ model .

但是,如果您确实不想使用 C++,则可以将颜色存储在以逗号分隔的字符串中,然后拆分它们:

import QtQuick 2.6
import QtQuick.Window 2.0

Window {
visible: true
width: 200
height: 200

ListView {
width: 32
height: 64
anchors.centerIn: parent
model: ListModel {
ListElement{
shape: "Circle"
colors: "red, blue"
}
ListElement{
shape: "Square"
colors: "green,yellow"
}
}
delegate: Rectangle {
width: 32
height: 32
radius: shape === "Circle" ? width / 2 : 0

property var colorArray: colors.split(",")

gradient: Gradient {
GradientStop {
position: 0
color: colorArray[0]
}
GradientStop {
position: 1
color: colorArray[1]
}
}
}
}
}

screenshot

关于qt - QML ListElement 传递字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38599271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com