Virgule
Cette catégorie d'avertissement est orthographiée [comma] par qmllint.
Ne pas utiliser d'expressions avec virgule
Qu'est-ce qui s'est passé ?
Une expression JavaScript de type virgule a été utilisée en dehors d'une boucle for.
Pourquoi est-ce mauvais ?
Les expressions à virgule réduisent la lisibilité du code et masquent les effets de bord.
Exemple
import QtQuick Item { Component.onCompleted: init(config, true), enableLogging(categories), run(1000) // millis }
Pour corriger cet avertissement, remaniez le code afin d'utiliser des instructions distinctes pour chaque opération. De cette manière, chaque effet secondaire est explicite au lieu de se produire dans le cadre d'une autre opération sans rapport :
import QtQuick Item { Component.onCompleted: { init(config, true) enableLogging(categories) run(1000) // millis } }
En outre, il existe des considérations spéciales pour les cas où les expressions à virgule apparaissent parce qu'une variable est intentionnellement capturée pour une liaison, comme dans le code suivant, où previewOfFirstPage est une fonction définie en C++ qui dépend en interne de Config.fontSize:
Text { // This causes the function to re-run when fontSize changes text: Config.fontSize, documentProvider.previewOfFirstPage() }
Si vous rencontrez cette situation, envisagez l'une des approches suivantes :
- Si une fonction telle que
previewOfFirstPagedépend d'une propriété, préférez rendre cette dépendance explicite en passant la valeur en argument.Text { text: documentProvider.previewOfFirstPage(Config.fontSize) }
- Si la modification de la signature de la fonction n'est pas souhaitable pour des raisons d'API, envisagez de remplacer la fonction par une Q_PROPERTY, de sorte que des notifications de changement puissent être émises lorsque la dépendance est modifiée en C++ :
void Config::setFontSize(int fontSize) { if (m_fontSize == fontSize) return; m_fontSize = fontSize; emit fontSizeChanged(); emit previewOfFirstPageChanged(); }
Text { text: documentProvider.previewOfFirstPage }
- Si la modification de l'implémentation C++ ou l'ajout de dépendances QML n'est pas possible, utilisez une directive
qmllintpour faire taire l'avertissement. Inclure un commentaire expliquant que l'intention est de capturer la variable dans le binding.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.