首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Layout.alignment垂直栏.qml文件中的错误

Layout.alignment垂直栏.qml文件中的错误
EN

Stack Overflow用户
提问于 2021-11-21 02:11:10
回答 1查看 65关注 0票数 0

背景:我有一个附带的项目,我正在做这个项目,这将是一个“滚动”的项目,我将在我作为一个程序员学习和成长的过程中进行更新。由于这个项目将与我一起成长,我想学习如何创建一个可以简单的GUI,但也使我能够真正定制GUI,一旦我真的感到舒服。在被选项淹没之后,我选择了PySide6和QML,但是我遇到了QML文件的问题。

下面的教程是Python集成(https://doc.qt.io/qtforpython/tutorials/qmlintegration/qmlintegration.html),我正在使用教程页面底部链接的.py和.qml文件。对于IDE,如果这很重要,我将使用Pycharm,并将PySide6包添加到项目和QML插件中。

Problem:我遇到的问题是.qml文件。出于某种原因,它没有识别在二维标志中使用的垂直条形线,以使我的RowLayout垂直和水平地居中。当我将光标悬停在垂直栏上时,我会得到一个提示,说明需要使用逗号、括号或大括号等多个不同符号中的一个,但却得到了“x”。

代码语言:javascript
复制
ColumnLayout {
    id: rightcolumn
    spacing: 2
    Layout.columnSpan: 1
    Layout.preferredWidth: 400
    Layout.preferredHeight: 400
    Layout.fillWidth: true

    RowLayout {
        Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter

        Button {
            id: red
            text: "Red"
            highlighted: true
            Material.accent: Material.Red
            onClicked: {
                leftlabel.color = bridge.getColor(red.text)
            }
        }
    }

我觉得我已经检查了到处都是Reddit,堆栈溢出,QT站点上的文档,但是找不到其他经历过这种情况的人。

EN

回答 1

Stack Overflow用户

发布于 2021-11-22 16:03:02

主要问题是将Qt.AlignVCenter设置在ColumnLayout的子类中是没有意义的,因为布局只尊重与布局方向正交的对齐方式。因此,在垂直方向的布局上设置垂直对齐不会起任何作用。

在这种情况下,由于简化了示例(具体来说,所有布局只有一个子),所以根本不需要任何布局。相反,我会将ColumnLayout转换为一个项,然后按如下方式将Button锚定在它的中心:

代码语言:javascript
复制
Item {
    id: rightcolumn

    Layout.columnSpan: 1
    Layout.preferredWidth: 400
    Layout.preferredHeight: 400
    Layout.fillWidth: true

    Button {
        id: red
        anchors.centerIn: parent
        text: "Red"
        highlighted: true
        Material.accent: Material.Red
        onClicked: {
            leftlabel.color = bridge.getColor(red.text)
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70051302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档