Auf dieser Seite

Komma

Diese Warnkategorie wird von qmllint als „ [comma] “ bezeichnet.

Verwenden Sie keine Komma-Ausdrücke

Was ist passiert?

Ein JavaScript-Kommaausdruck wurde außerhalb einer for-Schleife verwendet.

Warum ist das schlecht?

Komma-Ausdrücke verringern die Lesbarkeit des Codes und verschleiern Nebenwirkungen.

Beispiel

import QtQuick

Item {
    Component.onCompleted: init(config, true), enableLogging(categories), run(1000) // millis
}

Um diese Warnung zu beheben, überarbeiten Sie den Code so, dass für jede Operation separate Anweisungen verwendet werden. Auf diese Weise wird jeder Nebeneffekt explizit dargestellt, anstatt als Teil einer anderen, nicht damit zusammenhängenden Operation zu erfolgen:

import QtQuick

Item {
    Component.onCompleted: {
        init(config, true)
        enableLogging(categories)
        run(1000) // millis
    }
}

Darüber hinaus gibt es einige besondere Überlegungen für Fälle, in denen Kommaausdrücke auftreten, weil eine Variable absichtlich für eine Bindung erfasst wird, wie im folgenden Code, wo ` previewOfFirstPage ` eine in C++ definierte Funktion ist, die intern von ` Config.fontSize` abhängt:

Text {
   // This causes the function to re-run when fontSize changes
   text: Config.fontSize, documentProvider.previewOfFirstPage()
}

Wenn Sie auf diese Situation stoßen, sollten Sie einen der folgenden Ansätze in Betracht ziehen:

  • Wenn eine Funktion wie ` previewOfFirstPage ` von einer Eigenschaft abhängt, sollten Sie diese Abhängigkeit vorzugsweise explizit machen, indem Sie den Wert als Argument übergeben.
    Text {
       text: documentProvider.previewOfFirstPage(Config.fontSize)
    }
  • Wenn eine Änderung der Funktionssignatur aus API-Gründen unerwünscht ist, sollten Sie stattdessen in Erwägung ziehen, die Funktion durch ein ` Q_PROPERTY ` zu ersetzen, damit Änderungsbenachrichtigungen dafür ausgegeben werden können, wenn die Abhängigkeit in C++ geändert wird:
    void Config::setFontSize(int fontSize) {
       if (m_fontSize == fontSize)
          return;
       m_fontSize = fontSize;
       emit fontSizeChanged();
       emit previewOfFirstPageChanged();
    }
    Text {
       text: documentProvider.previewOfFirstPage
    }
  • Falls eine Änderung der C++-Implementierung oder das Hinzufügen von QML-Abhängigkeiten nicht möglich ist, verwenden Sie eine „ qmllint “-Anweisung, um die Warnung zu unterdrücken. Fügen Sie einen Kommentar hinzu, der erklärt, dass die Variable in der Bindung erfasst werden soll.
    Text {
       // This causes the function to re-run when fontSize changes
       text: Config.fontSize, documentProvider.previewOfFirstPage() // qmllint disable comma
    }

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.