وقتی اینطوری کردم نوشت object
import QtQuick 2.3
import QtQuick.Window 2.2
Window {
visible: true
width: 50
height: 50
property var name:new Array
property var word:new Array
Component.onCompleted: {
for (var i = 0; i < 15; ++i) {
name+=i
word.push(name);
print(typeof(word))
}
}
}
مشکل من اینه که مقدار متغییر word با این آرایه در خط زیر متفاوته:
word=["ali","ahmad"]
من این تفاوت رو با کد زیر فهمیدم:
import QtQuick 2.3
import QtQuick.LocalStorage 2.0
import QtQuick.Controls 1.1
Rectangle {
id: page2
property var word:new Array
property var namee:new Array
width: 360
height: 360
Column {
id: row
spacing: 5;
Component.onCompleted:{
var db = LocalStorage.openDatabaseSync("ravandi", "1.0", "The Example QML SQL!", 1000000);
db.transaction(
function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS jadval(id integer primary key autoincrement not null,`name` varchar(40),`last` varchar(40))');
tx.executeSql("insert into jadval (name,last) values('mohammad','ravandi')");
var rs = tx.executeSql('SELECT * FROM jadval');
for(var i = 0; i < rs.rows.length; i++) {
namee +=rs.rows.item(i).name
//word=["ali","ahmad"]
print(typeof(namee))
word.push(namee);
print(word)
}
}
)
}
Repeater {
id: repeater
model: word;
delegate: Rectangle {
width:100
height:30
border.color: "red"
border.width: 1
Text{
id:matn
anchors.centerIn: parent
text: modelData
}
}
}
}
}
الان مقدار word که به model داده میشه کار نمیکنه. یعنی مقدار بهش داده نمیشه ولی اگه بیایم و این خط رو به جاش بدیم:
word=["ali","ahmad"]
برنامه کار میکنه و مقادیر داخل مستطیل ها در پنجره نمایش داده میشه.
چرا؟