2017-01-21 14 views
-1

Я пытаюсь создать графический интерфейс с Qt быстро, и у меня будет много данных в нескольких файлах, и я буду постоянно обновлять GUI через C++ (оставляйте логику там), который будет издавать к некоторой функции JS (не уверен, что это правильный способ сделать что-то).Измените свойства компонента в GridView из функции javascript

Я сделал простой пример с макетом Grid (Not GridView), потому что я нашел, как изменить цвет первого прямоугольника, но не вложенный. Вот оно:

Column{ 
    spacing:2 

    Grid{ 
     id:grid 
     columns: 2 
     rows:2 
     spacing: 10 
     Repeater{ 
      model:4 

      Rectangle{ 
       id:rect1 
       width:100 
       height:100 
       color:"red" 
       Rectangle{ 
        id:rect2 
        width:25 
        height: 25 
        color:"black" 
        anchors.horizontalCenter: rect1.horizontalCenter 
        anchors.verticalCenter: rect1.verticalCenter 
       } 

      } 
     } 
    } 

    Button{ 
     text:"Click me" 
     width:50 
     height:50 
     onClicked: { 
      for (var i = 0; i <grid.children.length; ++i) 
       column.children[i].color="green"; 
     } 
    } 
} 
+0

Зачем вам нужна функция JavaScript для любого из них? Делегат в GridView может просто реагировать на изменения данных своей модели. –

+0

Я начинаю, и я пытаюсь найти, как создать свой интерфейс. Я не уверен, что это правильный путь. Я редактировал мой вопрос только сейчас, но я, как я читал в документации, вам нужно отделить логику от графики, поэтому я подумал, что моя функция C++ будет сигнализировать о моей функции javascript, а функция javascript изменит цвета. – Nikolas

ответ

1

Я нашел решение моей проблемы после простой попытки получения доступа к второй Rectangle таким же образом, что я получить доступ к Rectangle детей Grid.

for (var i = 0; i < column.children.length; ++i) 
    grid.children[i].children[0].color="green";