【问题标题】:Align horizontalcenter in Column在列中对齐水平中心
【发布时间】:2015-09-02 10:01:17
【问题描述】:

Columndocumentation 解释了如何实现这一点:

但是,我想实现这个:

也就是说,Column 内的所有项目都应该水平对齐到中心。 anchors.horizontalCenter: parent.Center 不起作用。我怎样才能得到想要的结果?

【问题讨论】:

  • 我有点困惑,答案被接受了,现在帖子被编辑了,它不起作用。是这样还是不是?
  • 我在发帖之前就已经尝试过anchors.horizontalCenter: parent.Center。但那是错误的。你写的是对的:anchors.horizontalCenter: parent.horizontalCenter。区别在于使用parent.horizontalCenter 而不是parent.Center
  • 是的,发表评论后,我第二次阅读它并理解其中的区别,该死的我必须更加注意阅读:D对不起,毫无意义的评论:)
  • 没问题。谢谢你的帮助:)

标签: qt qml qtquick2 qt-quick


【解决方案1】:

试着把这句话告诉每个孩子:

anchors.horizontalCenter: parent.horizontalCenter

【讨论】:

    【解决方案2】:

    我想您可以对所有子项使用 anchors.horizontalCenter 以将它们与列的 horizontalCenter 对齐,因为该列具有您可以引用的 id。

    【讨论】:

    • 您不应该在布局中使用锚点:“在由布局管理的项目上检测到的锚点。”
    • Column 不是布局。
    • Detailed Description of Column 非常具体地说明了不应使用 anchors 的哪些属性。 horizontalCenter 没有被提及。所以我认为@patrick-josé-pereira @marpan 的 cmets 已经过时了。
    【解决方案3】:

    如果是布置物品的问题,还请查看ColumnLayout 组件和附加属性Layout.alignment(您可以将其设置为Qt.AlignHCenter)。

    我发现布局更容易使用。

    【讨论】:

    • 布局的缺点是它们没有过渡,例如移动。或者至少我不知道如何应用它们。
    • 如果你想移动物品,不仅仅是布置它们的问题。 :-)
    • 我按照文档所说的方式这样做了,但是 Qt 将项目的左侧设置在中心位置,而不是将整个项目以左右相等的边距居中。我做错了吗?
    • @Savvas,Layout 是一个attached object,可用于ColumnLayout 的子代。您可以在要居中的每个孩子中设置附加属性 Layout.alignment,就像在 Column 的每个孩子中设置 anchors.horizontalCenter 一样。
    最近更新 更多