[Interest] QML id

Gian Maxera gmaxera at gmail.com
Mon Apr 11 14:10:06 CEST 2016


> On 11 Apr 2016, at 11:44, Igor Mironchik <igor.mironchik at gmail.com> wrote:
> 
> Hello,
> 
> On 11.04.2016 13:19, Gian Maxera wrote:
>> 
>>> On 11 Apr 2016, at 11:14, Igor Mironchik < <mailto:igor.mironchik at gmail.com>igor.mironchik at gmail.com <mailto:igor.mironchik at gmail.com>> wrote:
>>> 
>>> 
>>> 
>>> On 11.04.2016 12:57, Gian Maxera wrote:
>>>> If the Text is inside the generated rectangle into the repeater you don’t need to generate different Ids, you can do that:
>>>> 
>>>> Repeater {
>>>>   model: 10
>>>>   delegate: Rectangle {
>>>>      id: cellRect
>>>>      Text {
>>>>         anchor.horizontalCenter: cellRect.horizontalCenter
>>>>      }
>>>>   }
>>>> }
>>>> 
>>>> Even if the delegate has a fixed id and generated 10 times, QML will resolve correctly it.
>>> 
>>> I want to rewrite my QML with chess board with Repeater. And I want to see the next:
>>> 
>>> <chess.png>
>> 
>> I don’t know your current code, but If I would in your shoes, I will use a model representing where to put the chess items and a Grid to lay out the items. With Grid Item you can setup a global alignment of the items.
>> I think it should work in your case.
>> If you want more help, please share with us some snippet of code so I can understand what you need to achieve.
> 
> Model and Grid is fine. I can place chess and rects, fine. But how to put letters and numbers?


One solution using Column and Row instead of Grid to split Repeaters:

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 { }
    }
}

> 
> Thank you.
> 
>> 
>>>> 
>>>> Ciao,
>>>> Gianluca.
>>>> 
>>>>      }
>>>> 
>>>>> On 11 Apr 2016, at 10:49, Igor Mironchik <igor.mironchik at gmail.com <mailto:igor.mironchik at gmail.com>> wrote:
>>>>> 
>>>>> Look. I want to generate chess board - rectangles (8x8). And I want to place numbers an letters on the sides. This numbers and letters should be anchored to centers of rectangles. I.e. I want to have something like:
>>>>> 
>>>>> Text {
>>>>>    anchor.horizontalCenter: cell00.horizontalCenter
>>>>> }
>>>>> 
>>>>> ...
>>>>> 
>>>>> On 11.04.2016 12:40, Gian Maxera wrote:
>>>>>> Hello,
>>>>>> I don’t think so.
>>>>>> Why do you need it ? Maybe we can suggest to you an alternative solution.
>>>>>> 
>>>>>> Ciao,
>>>>>> Gianluca.
>>>>>> 
>>>>>> 
>>>>>>> On 11 Apr 2016, at 10:38, Igor Mironchik < <mailto:igor.mironchik at gmail.com>igor.mironchik at gmail.com <mailto:igor.mironchik at gmail.com>> wrote:
>>>>>>> 
>>>>>>> Hello,
>>>>>>> 
>>>>>>> Is it possible to generate id of item in Repeater, for example?
>>>>>>> 
>>>>>>> Thank you.
>>>>>>> _______________________________________________
>>>>>>> Interest mailing list
>>>>>>> Interest at qt-project.org <mailto:Interest at qt-project.org>
>>>>>>> http://lists.qt-project.org/mailman/listinfo/interest <http://lists.qt-project.org/mailman/listinfo/interest>
>>>>> 
>>>> 
>>> 
>> 
> 

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


More information about the Interest mailing list