Qt 沿圆圈排列数字

Qt 沿圆圈排列数字,qt,qml,qt5,geometry,qtquick2,Qt,Qml,Qt5,Geometry,Qtquick2,我有一个数字列表,例如 property var numbers: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120] 我想把它排成一个圆圈,就像在一个钟里 我尝试使用QML时钟示例,但未能对其进行调整。 如何使用QML工具动态生成该排列?您可以使用三角函数或类似函数计算它们的位置,或者使用项作为“辐条”,只需旋转,然后将文本-元素锚定到顶部 这可能是这样的: Repeater { id: rep model: [0, 10,

我有一个数字列表,例如

property var numbers: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120]
我想把它排成一个圆圈,就像在一个钟里

我尝试使用QML时钟示例,但未能对其进行调整。

如何使用QML工具动态生成该排列?

您可以使用三角函数或类似函数计算它们的位置,或者使用
项作为“辐条”,只需旋转,然后将
文本
-元素锚定到顶部

这可能是这样的:

Repeater {
    id: rep
    model: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110]

    delegate: Item {
        height: 100
        anchors.bottom: parent.verticalCenter
        anchors.left: center.horizontalCenter
        transformOrigin: Item.Bottom
        rotation: 360 / rep.model.length * index
        Text {
            text: modelData
            anchors.horizontalCenter: parent.horizontalCenter
            rotation: -parent.rotation // If you want to have them upright
        }
    }
}

如果您不想让文本笔直,请注释掉最后一个旋转。

对不起,我如何将我的圆更改为半圆形?您可以看到
旋转:360/rep.model.length*索引
。360度是以度为单位的全角度范围。360是一个完整的圆圈。将其更改为例如180,仅为半圈。添加或减去若干度,以调整起始角度。它可能是这样的:
rotation:180/rep.module.length*index-90
如果你觉得我的答案很有帮助,请不要忘了投票。如果它充分回答了你的问题,也检查它是否被接受。非常感谢。认真地说,如果有一个简短而简单的答案(在结束时已经提供了答案),那么结束的范围太广了?离题,因为它缺少OP可能尝试过的任何方法。但过于宽泛确实没有抓住重点。对此,我唯一的解释是,几乎所有的闭包器都来自与Qt/QML无关的字段,因此它们很容易回答:“您可以用其他语言来做”,从而导致可能的答案太多。但那是因为他们的答案不是问题的答案。请用你的选票负责@derM如果你以适当的方式编辑问题,问题并不宽泛,但如果我们回到原始问题,你会发现作者没有试图解决任何问题,这导致作者习惯于问此类问题,而没有表现出任何努力。既然不是编码服务,作者必须展示他所做的尝试。那么我们为什么要这样做呢。“如果此问题可以重新编写以符合帮助中心的规则,请编辑此问题。”而不是:“如果您不能提供帮助,请尽可能提供帮助。”