Auf dieser Seite

Komma

Diese Warnkategorie wird von qmllint [comma] geschrieben.

Verwenden Sie keine Komma-Ausdrücke

Was ist passiert?

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

Warum ist das schlecht?

Kommaausdrücke vermindern die Lesbarkeit des Codes und verschleiern Nebeneffekte.

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 eigene Anweisungen verwendet werden. Auf diese Weise ist jeder Nebeneffekt explizit, anstatt als Teil einer anderen, nicht verwandten Operation aufzutreten:

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 erscheinen, 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 explizit machen, indem Sie den Wert als Argument übergeben.
    Text {
       text: documentProvider.previewOfFirstPage(Config.fontSize)
    }
  • Wenn eine Änderung der Funktionssignatur aus API-Gründen nicht erwünscht ist, sollten Sie die Funktion stattdessen durch Q_PROPERTY ersetzen, so dass Änderungsmeldungen für diese Funktion 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
    }
  • Wenn eine Änderung der C++-Implementierung oder das Hinzufügen von QML-Abhängigkeiten nicht möglich ist, verwenden Sie eine qmllint Direktive, um die Warnung zum Schweigen zu bringen. Fügen Sie einen Kommentar ein, der erklärt, dass die Absicht ist, die Variable in der Bindung zu erfassen.
    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.