Qt és QML kódolási stílus

Qt/C++

A jel és a szék nevezés

A jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelzésnek a jelképeletnek a jelkéve a jelkéve a jelkéve a jelkéve a jelkéve a jelkéve a jelkéve az a jelkéve az a jelkéve az a jel, hogy az a jelkéve az a jelkéve az a jelkéve az a jelkéve az a jelkéve az a jelkéve az a jel, hogy az a jelkéve az a jelkéve az a jelkéve az a jelkéve az a jelkéve, hogy az a jelkéve, hogy az a jelkéve, hogy az a jelkéve az a jelkéve, hogy az a jelkéve az a jelkéve az a jelkéve az a jelkéve az

// correct
signal:
    void shutdownScheduled();
    void navigationRequested();
...
slot:
    void onShutdownScheduled();
    void onNavigationRequested();

// incorrect
signal:
    void shutdown();
    void navigateToHomeView();
...
slot:
    void onShutdown();
    void slotNavigateToHomeView();

QML

Kód formázása

A qmlformat Qt 5.15.0 verziójában vannak problémák a megjegyzésszekciókkal, és jelenleg nem tesz különbséget a maximális oszlopszám között, ezért ezt a formázási stílust továbbra is használni fogjuk az irányelvekben. A következő egy átfogó mintakomponens, amelyet a https://doc.qt.io/qt-5/qml-codingconventions.html oldalról adaptáltunk, és amely megpróbálja szemléltetni az ideálisan formázott komponenst.

/*
 * authored by/copyright …
 */

// Id always on the first line, and always present and called root
// for root component. Only present if referenced for children.
// Multi-line comments use '//'.
// There should always be a brief description of a component.
// Multi-line comments start with a capital letter and end with
// a period.
Rectangle {
    id: root

    // property declarations
    property bool thumbnail: false
    property alias image: photoImage.source

    // signal declarations
    signal clicked

    // javascript functions
    function doSomething(x) {
        return x + photoImage.width
    }

    // object properties
    color: "gray"
    // try to group related properties together
    x: 20
    y: 20
    height: 150
    // large bindings
    width: {
        // Always space all operators, and add a single space
        // before opening brackets.
        if (photoImage.width > 200) {
            photoImage.width
        } else {
            height
        }
    }

    // child objects (contentItem, defaults, etc. first)
    Rectangle {
        id: border
        anchors.centerIn: parent
        color: "white"

        Image {
            id: photoImage
            anchors.centerIn: parent
        }
    }

    Text {
        anchors.centerIn: photoImage
        // Use the ellipsis character (…) for manual ellision within
        // UI text and don't translate untranslatables.
        text: qsTr("an emoji: %1 and a number: %2 …").arg("💡").arg(42)
    }

    // states
    states: State {
        name: "selected"
        PropertyChanges {
            target: border
            color: "red"
        }
    }

    // transitions
    transitions: Transition {
        from: ""
        to: "selected"
        ColorAnimation {
            target: border
            duration: 200
        }
    }
}

JS-kód formázása

Kérlek, állítsd be az IDE-szerkesztőt úgy, hogy a formázáshoz a src/app/js/ könyvtárban található clang-format fájlt használja. Ideális esetben minden JS kódnak ebben a könyvtárban kell lennie, és a clang-format fájlt kell használni a kód formázásához. A segédprogramként szolgáló vagy a fő alkalmazás részét nem képező JS-fájloknak mind a src/app/js/ könyvtárban kell lenniük. Ha valamilyen okból egy JS-kódfájlt máshol kell elhelyezni, kérlek másold a clang-format fájlt abba a könyvtárba, és használd azt a kód formázásához.