Errore con Layout.allineamento verticale di bar in barra verticale .file qml

0

Domanda

Sfondo: ho un altro progetto a cui sto lavorando che sarà una "rolling", progetto che sarò l'aggiornamento, come ho imparare e di crescere come programmatore. Dal momento che questo progetto sarà essere sempre con me, io volevo imparare a creare una GUI che può essere semplice, ma anche mi dà la possibilità di personalizzare veramente il GUI una volta mi sento davvero bene con esso. Dopo sentirsi sopraffatti con le opzioni sono atterrato sulla PySide6 e QML, ma ho un problema con il file QML.

Il tutorial che sto seguendo è Python-QML integrazione (https://doc.qt.io/qtforpython/tutorials/qmlintegration/qmlintegration.html) e sto usando il .py e .qml file linkato in fondo alla pagina del tutorial. Per un IDE se è importante sto usando Pycharm e hanno PySide6 pacchetto aggiunti al progetto, così come il QML Editor plug-in.

Problema: Il problema che sto avendo con l' .qml file. Per qualche motivo, non riconoscendo la barra verticale utilizzato in due-dimensionale bandiera al centro della mia RowLayout verticalmente e orizzontalmente. Quando mi passa il mio cursore sulla barra verticale ho un suggerimento dicendo che uno dei più simboli diversi, come virgole, parentesi, o graffe era prevista, ma invece il '|'.

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

Mi sento come ho controllato ovunque Reddit, stack overflow, la documentazione sulle QT sito, ma non riesco a trovare nessuno altro che esperti di questo.

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

Migliore risposta

0

Il problema principale è che l'impostazione di Qt.AlignVCenter in un bambino di un ColumnLayout non ha senso dal Layout solo onore allineamento ortogonale alla direzione del loro layout. Così, l'impostazione di un allineamento verticale su un orientamento verticale, layout di non fare nulla.

In questo caso, dal momento che è stata semplificata l'esempio (in particolare, tutti i layout di avere solo un figlio), non si ha realmente bisogno di un layout a tutti. Invece, vorrei convertire il ColumnLayout di un Elemento e quindi ancorare il Pulsante al centro di esso come questo:

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

In altre lingue

Questa pagina è in altre lingue

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