Задача такая.
Есть файл LineParamEdit.qml - это объект QML. У этого объекта есть сигнал
signal setParam(string name,string value, string unit);
есть файл main.qml - это основной qml документ в котором хочется отобразить несколько LineParamEdit. Для
их отображения создан файл my.js:
var component = Qt.createComponent("LineParamEdit.qml"); // определили компонент над которым происходит обработка
var linesArray = new Array();
var coordinates = [
[10,10],
[10,60],
[10,110]
]
var lines = [
["Fs","100","MHz","Sampled Frequency"],
["SYM","800","sml","Samples per symbol"],
["Flo","10","MHz","LO frequency"]
]
function createNewBlock(){
for (var i = 0; i < 3; i++) {
if(component.status != Component.Ready){
return false;
}
// создание объекта
var newLine = component.createObject(convas);
if(newLine == null){
return false;
}
newLine.parameterNameText = lines
newLine.parameterValueText = lines[1];
newLine.parameterUnitText = lines[2];
newLine.parameterDescriptionText = lines[3];
newLine.setParam.connect(setParamStruct(newLine.parameterNameText,newLine.parameterUnitText,newLine.parameterUnitText));
newLine.x = coordinates- ; // указать координаты нового блока
newLine.y = coordinates[1];
linesArray.push(newLine); // заносим объект в массив ообъектов
}
return true;
}
function setParamStruct(name,value,unit){
console.log(name);
console.log(value);
console.log(unit);
}
в main.qml скрипт импортирован и по окончанию создания qml вызывается функция динамического создания LineParamEdit
Component.onCompleted: Main.createNewBlock();
Объекты создаются как нужно, но никак не удается привязать сигналы объектов к функции обработчику setParamStruct
и строчка newLine.setParam.connect(setParamStruct(newLine.parameterNameText,newLine.parameterUnitText,newLine.parameterUnitText));
не работает.
Есть у кого нибудь идеи?