Erro com o Layout.alinhamento vertical bar na barra vertical .qml arquivo

0

Pergunta

Plano de fundo: eu tenho um projeto que estou trabalhando que vai ser uma "rolando" projeto que eu vou atualizando conforme eu aprender e crescer como um programador. Como este projeto vai estar crescendo comigo, eu queria aprender como criar uma interface de usuário que pode ser simples, mas também me dá a habilidade de personalizar a GUI uma vez que eu realmente sinto confortável com ele. Depois de se sentindo sobrecarregado com opções de pousei em PySide6 e software livre, mas eu estou correndo em um problema com o arquivo QML.

O tutorial que estou seguindo é o Python-software livre de integração (https://doc.qt.io/qtforpython/tutorials/qmlintegration/qmlintegration.htmle eu estou usando-o .py e .qml arquivos vinculados no fundo do tutorial. Para um IDE, se o que importa é que eu estou usando Pycharm e ter PySide6 pacote adicionado para o projeto, bem como o software livre Editor de plug-in.

Problema: O problema que estou tendo é com o .qml arquivo. Por algum motivo, não reconhecendo a barra vertical utilizado na bidimensional bandeira para o centro de minha RowLayout verticalmente e horizontalmente. Quando eu passe meu cursor sobre a barra vertical recebo uma dica dizendo que um dos vários símbolos diferentes, como vírgulas, parênteses ou chaves foram o esperado, mas, em vez disso, tem '|'.

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

Eu sinto como se eu marcada em qualquer lugar do Reddit, estouro de pilha, a documentação do QT site, mas não pode encontrar qualquer outra pessoa que experimentou isso.

qml qt
2021-11-21 02:11:10
1

Melhor resposta

0

O principal problema é que a configuração Qt.AlignVCenter em uma criança de um ColumnLayout não faz sentido uma vez que os Layouts só honra o alinhamento ortogonal à direção de seu layout. Assim, a definição de um alinhamento vertical em um verticalmente orientado layout não vai fazer nada.

Neste caso, desde que você simplificamos o exemplo (especificamente, todos os layouts de ter apenas uma criança), você realmente não precisa de qualquer layouts em tudo. Em vez disso, gostaria de converter a ColumnLayout para um Item e, em seguida, ancorar o Botão no centro como este:

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)
        }
    }
}
2021-11-22 16:03:02

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................