Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.7.1 - Qt Creator : 4.2.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Coloration syntaxique

Salut tous le monde!!!!!

En regardant les exemples de Qt,une question m'a traversée l'esprit.
Peut on réaliser un système de coloration syntaxique en QtQuick?

Si oui comment?

Réponses

  • Tu peux trouver ton bonheur sur Syntax Highlighter Example
  • Bonsoir !
    Excuse moi de te contredire @coyotebe mais Syntax Highlighter Example n'est pas en Qt Quick.
  • Il me semble avoir vu qu'on pouvait l'appliquer à un QQuickTextDocument. J'ai du me tromper.
  • Salut,
    normalement avec un TextEdit c'est possible,
    partie qml :

    TextEdit {
    id: textedit
    objectName: "myEditor"

    côté cpp :

    QQuickTextDocument* doc = childObject<QQuickTextDocument*>(engine, "myEditor", "textDocument");
    Q_ASSERT(doc != 0);

    MySyntaxHighlighter* parser = new MySyntaxHighlighter(doc->textDocument());

  • Salut!! Vraiment Je n'y arrive pas,que dois je faire?
  • Je n'y arrive pas
    Sers-toi de ton clavier !!!!

    N'hésite pas à nous décrire en détail ce que tu ne parviens pas à faire, ce que tu as essayé, les difficultés rencontrées, les messages d'erreur éventuels, des bouts de code qui ne fonctionnent pas, les voies envisagées, celles où tu es bloqué...
    En bref dis-toi qu'on ne voit pas ton écran. Décris ton problème avant qu'on ne te pose la question, parce que, vois-tu, c'est fatigant de toujours devoir demander aux gens de dire ce qui les arrête.

    À ce moment-là, peut-être pourrons-nous répondre à ton "que dois je faire?"
  • Le problème c'est que pour ce problème ci je ne sais pas par ou commencer.
  • December 2016 modifié
    Regardes du côté des exemples présent dans QtCreator. Cela devrai être un réflexe quant on cherche une fonctionnalité.
    Nom de l'exemple qui pourait être une base de travail : Qt Quick Controls - Text Editor Exemple
  • Il n'y a pas d'exemple de coloration syntaxique pour le QtQuick
  • Re,
    normalement cela devrait fonctionner avec les quelques lignes de codes que je t'ai donné plus haut,
    mais il faut bien sûr écrire une classe MySyntaxHighlighter qui hérite de QSyntaxHighlighter et en réimplémentant
    la fonction virtuelle pure

    void QSyntaxHighlighter::highlightBlock(const QString &text)
    Pas testé par contre.
  • @costarlabs,
    Je ne suis pas un pro du QML mais voici une ébauche QML/QSyntaxHighlighter/c++.

    Coyote
    zip
    zip
    QMLSyntaxHighlighter.zip
    6K
  • Salut,
    Sympas ton exemple.
  • Merci @loupium,

    J'ai un doute sur cette façon de faire quand même. Si quelqu'un peut confirmer que j'utilise la bonne méthode pour récupérer le textDocument.
        QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    QObject *textEditor = engine.rootObjects().first()->findChild<QObject*>("myEditor");
    if (textEditor) {
    QTextDocument *textDocument = textEditor->property("textDocument").value<QQuickTextDocument*>()->textDocument();
    Highlighter *parser = new Highlighter(textDocument);
  • @coyotebe
    Une version un peu améliorée de ton code, avec Highlighter dans le QML. Ça évite le code un peu "sale" dans le main ;-)
    zip
    zip
    SyntaxHighlighter.zip
    6K
  • Merci @BBenj. C'est bien plus propre comme ça.
Connectez-vous ou Inscrivez-vous pour répondre.