[Interest] QML id
Igor Mironchik
igor.mironchik at gmail.com
Mon Apr 11 14:55:40 CEST 2016
On 11.04.2016 15:10, Gian Maxera wrote:
>
>> On 11 Apr 2016, at 11:44, Igor Mironchik <igor.mironchik at gmail.com
>> <mailto: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 <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 { }
> }
> }
Looks like a solution. Only one question is still opened... How to align
letters and numbers in center if chess board should be resizable? I.e. I
can't use x and y properties for that. I need anchor.horizontalCenter
which use AnchorLine, not pixels...
>
>>
>> Thank you.
>>
>>>
>>>>>
>>>>> Ciao,
>>>>> Gianluca.
>>>>>
>>>>> }
>>>>>
>>>>>> On 11 Apr 2016, at 10:49, Igor Mironchik
>>>>>> <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
>>>>>>>> <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
>>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160411/8fbf7390/attachment.html>
More information about the Interest
mailing list