如何解决用js动态创建对象
我有两个问题。我正在使用Qt创建一个应用程序。我将qml和js用于前端代码。我正在尝试找到一种在ColumnLayout {}内部动态创建多个对象的方法。假设那些对象将是矩形。服务器将向我发送一个包含数据(图像,文本和类型)的数组,我将计算数组的长度,并将这些数据添加到每个矩形中。我如何将它们添加到矩形中?我将尝试使代码简单并削减所有不必要的部分。您将看到的可能是错误的,但这是我唯一想到的事情。
[]
解决方法
您可以使用qml提供的模型范例。这是文档。 https://doc.qt.io/qt-5/qtquick-modelviewsdata-modelview.html。
,要在动态创建的对象中使用布局,只需要包含import语句即可。
var newObject = Qt.createQmlObject('import QtQuick 2.12; import QtQuick.Layouts 1.12; Rectangle { color: "red"; border.color: "black"; border.width: 5; Layout.preferredWidth: parent.width; Layout.preferredHeight: parent.height / 2; }',body_part1);
尝试此操作时,我发现您的ColumnLayout
代码中有些奇怪的东西使我绊倒。
ColumnLayout{
id:body_part1
width: parent.width
height: parent.height/4
//anchors.top: parent.bottom // I had to comment this out or the items were outside the visible area.
Component.onCompleted: test();
}
您的第二个问题似乎只是关于在文本字符串中添加表达式。您可以使用+
运算符轻松完成此操作:
var myString = "Hello " + getWorld();
这将在createQmlObject函数中正常工作:
Qt.createQmlObject("import QtQuick... someValue: " + value1 + "; someOtherValue: " + value2)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。