[Interest] QML id

Igor Mironchik igor.mironchik at gmail.com
Mon Apr 11 15:49:28 CEST 2016


Hello,

Thank you.

I successfully drawn chess board. Nice.

Column {
         spacing: 0
         Row {
             // top letters
             Item { width: offset; height: offset; }
             Repeater {
                 model: [ "A", "B", "C", "D", "E", "F", "G", "H" ]
                 delegate: Text {
                     width: cellWidth
                     height: offset
                     text: modelData
                     horizontalAlignment: Text.AlignHCenter
                     verticalAlignment: Text.AlignVCenter
                 }
             }
             Item { width: offset; height: offset; }
         }
         // Rows with cells
         Repeater {
            model: 8
            delegate: Row {
                id: row
                property int rowIndex: index
                // number
                Text {
                     width: offset
                     height: cellHeight
                     text: 8 - index
                     horizontalAlignment: Text.AlignHCenter
                     verticalAlignment: Text.AlignVCenter
                }
                // first row of chess board
                Repeater {
                     model: 8
                     delegate: Cell {
                         cellColor: ( row.rowIndex % 2 === 0
                             ? ( index % 2  === 0 ? "white" : "lightgray" )
                             : ( index % 2  === 0 ? "lightgray" : 
"white" ) );
                         chessX: index; chessY: row.rowIndex;
                         onClicked: board.clicked( x, y );
                         onHovered: board.hovered( x, y );
                         objectName: "c"+ chessX + chessY;
                         width: cellWidth;
                         height: cellHeight;
                     }
                }
                // number
                Text {
                     width: offset
                     height: cellHeight
                     text: 8 - index
                     horizontalAlignment: Text.AlignHCenter
                     verticalAlignment: Text.AlignVCenter
                }
            }
         }
         Row {
             // top letters
             Item { width: offset; height: offset; }
             Repeater {
                 model: [ "A", "B", "C", "D", "E", "F", "G", "H" ]
                 delegate: Text {
                     width: cellWidth
                     height: offset
                     text: modelData
                     horizontalAlignment: Text.AlignHCenter
                     verticalAlignment: Text.AlignVCenter
                 }
             }
             Item { width: offset; height: offset; }
         }
     }

But now I need place pieces on board.

In my old code I used

Figure {
         source: "qrc:/img/pawn-white.png"
         x: c06.x
         y: c06.y
         objectName: "pawn-white-1"
         width: cellWidth
         height: cellHeight
     }

Where c06 is id. Is it possible to bind x to x property of Cell by 
objectName?

Thank you.

On 11.04.2016 16:02, Gian Maxera wrote:
> Column {
>     spacing: 0
>     Row {
>         // top letters
>         EmptyItem { // use fixed width here so you can align the text }
>         Repeater {
>   model: [“A”, “B”, … “H”]
>             delegate: DisplayTheLetter { … }
>         }
>         EmpyItem { }
>     }
>     // Rows with cells
>     Repeater {
>        model: 8
>        delegate: Row {
>            // number
>            Text {
>                 // use fixed width and align left the text
>                 // vertical alignment with anchors
>                 anchors.verticalCenter: parent.verticalCenter
>                 text: index+1
>            }
>            // first row of chess board
>            Repeater {
>                 model: chessBoardModel[index]
>                 delegate: ASingleCellOfChessBoard { … }
>            }
>        }
>     }
>     Row {
>         // bottom letters
>         EmptyItem { }
>         Repeater {
>   model: [“A”, “B”, … “H”]
>             delegate: DisplayTheLetter { … }
>         }
>         EmpyItem { }
>     }
> }

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160411/82a90092/attachment.html>


More information about the Interest mailing list