Erreur de Mise en page.l'alignement vertical de la barre dans la barre verticale .fichier qml

0

La question

Contexte: j'ai un projet que je suis en train de travailler sur ça va être un "rolling" projet que je vais être mise à jour que j'ai à apprendre et de grandir en tant que programmeur. Étant donné que ce projet sera de plus en plus avec moi, j'ai voulu apprendre à créer une interface graphique qui peut être simple, mais aussi me donne la possibilité de vraiment personnaliser l'interface graphique une fois que je me sens vraiment à l'aise avec elle. Après avoir débordé avec les options que j'ai atterri sur PySide6 et QML mais je suis en cours d'exécution dans un problème avec le fichier QML.

Le tutoriel que je suis Python-QML intégration (https://doc.qt.io/qtforpython/tutorials/qmlintegration/qmlintegration.html) et je suis en utilisant le .py et .qml fichiers liés au bas de la page du tutoriel. Pour une IDE si c'est important, je suis en utilisant Pycharm et ont PySide6 paquet ajouté au projet ainsi que le QML Éditeur de plug-in.

Problème: La question que je vais avoir est avec la .qml fichier. Pour une raison quelconque, il n'est pas reconnaissant la barre verticale utilisée dans les deux dimensions du drapeau au centre de mon RowLayout verticalement et horizontalement. Quand j'ai passez mon curseur sur la barre verticale, je reçois un conseil en disant que l'un des nombreux symboles différents, comme des virgules, des parenthèses ou accolades étaient attendus mais plutôt got '|'.

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

Je me sens comme je l'ai vérifié partout Reddit, un débordement de pile, la documentation sur l'intervalle QT site, mais ne peut pas trouver quelqu'un d'autre qui a connu ce.

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

La meilleure réponse

0

Le principal problème est que le réglage de Qt.AlignVCenter dans un enfant d'un ColumnLayout n'a pas de sens étant donné que les Mises en page seulement l'honneur d'alignement orthogonal à la direction de leur mise en page. Ainsi, la fixation d'un alignement vertical sur une orientation verticale de mise en page ne sont rien.

Dans ce cas, puisque vous avez simplifié l'exemple (plus précisément, l'ensemble de vos mises en page ont un seul enfant), vous n'avez pas vraiment besoin de toutes les layouts à tous. Au lieu de cela, je voudrais convertir le ColumnLayout à un Élément, puis d'ancrage le Bouton au centre de cette façon:

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

Dans d'autres langues

Cette page est dans d'autres langues

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