Chyba s Layout.zarovnání vertikální panel ve vertikální liště .qml soubor

0

Otázka

Pozadí: mám vedlejší projekt, který dělám na tom bude "válcování" projekt, který budu aktualizovat, jak jsem učit se a růst jako programátor. Protože tento projekt bude rostoucí s mi, že jsem se chtěl naučit, jak vytvořit GUI, které může být jednoduché, ale také mi dává možnost skutečně přizpůsobit GUI jednou jsem se opravdu cítit pohodlně s ním. Poté, co pocit, ohromen s možností přistál jsem na PySide6 a QML ale mám problém s QML soubor.

Tutorial jsem následující je Python-QML integrace (https://doc.qt.io/qtforpython/tutorials/qmlintegration/qmlintegration.html) a já jsem s použitím .py a .qml soubory odkazované v dolní části tutoriálu stránce. Pro IDE, pokud to záleží, já používám Pycharm a PySide6 balíček přidán do projektu, stejně jako QML Editor plug-in.

Problém: problém, který mám je se .qml soubor. Z nějakého důvodu, to není uznání svislý pruh použit ve dvou-dimenzionální vlajka můj centra RowLayout svisle a vodorovně. Když jsem se vznášet se můj kurzor nad svislou čáru dostal jsem tip říká, že jeden z více různých symbolů, jako jsou čárky, závorky nebo složené závorky byly očekávalo, ale místo toho dostal '|'.

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

Mám pocit, že jsem všude Reddit, přetečení zásobníku, dokumentace na QT webu, ale nemůže najít nikoho jiného, že je zkušený.

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

Nejlepší odpověď

0

Hlavní problém je, že nastavení Qt.AlignVCenter v dítě ColumnLayout nedává smysl, protože Rozložení pouze čest zarovnání kolmé ke směru jejich rozložení. Takže, nastavení svislé zarovnání na svisle orientovaný layout nebude dělat nic.

V tomto případě, protože jste zjednodušený příklad (konkrétně všechny vaše rozvržení mít pouze jedno dítě), nemáte opravdu potřeba žádné rozvržení. Místo toho bych převést ColumnLayout na Položku a pak kotva Tlačítko ve středu to takhle:

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

V jiných jazycích

Tato stránka je v jiných jazycích

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