IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

QString dans fonction tr()

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de arkham55
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 179
    Par défaut QString dans fonction tr()
    Bonjour à tous,

    Alors voilà, j'aimerai afficher ce message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    QGraphicsScene scene;
    QString name("Dupont");
    scene.addText(tr("Bienvenue " + username));
    Mais j'ai une erreur dont je n'arrive pas à me débarrasser..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    no matching function for call to MaClasse::tr(const QString)
    candidates are : ... tr(const char*, const char*)
    etc
    Qu'en pensez-vous? Merci d'avance amis programmeurs.

  2. #2
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Par défaut
    Tout simplement parce que la concaténation avec l'opérateur + n'existe pas en Qt...

    Tu viens probablement d'un autre langage/framework et n'a pas pris le temps de comprendre le fonctionnement de Qt.

    http://qt.developpez.com/faq/?page=QString
    http://qt.developpez.com/doc/4.7/qstring/

  3. #3
    Membre confirmé Avatar de arkham55
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 179
    Par défaut
    Je veux pas contredire, je suis néophyte, mais en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scene.addText(tr("Bienvenue " )+ username);
    Cela a résolu le problème, soit, en excluant de la fonction tr() la concaténation, mais attention aux traductions qui suivront :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scene.addText(tr("Bienvenue " )+ username+tr(", êtes-vous prêt?"));
    Cela a pour effet, pour une phrase, de la séparer en deux. Le traducteur doit donc prendre en compte les deux portions en fait comme cela.
    Merci de ta réponse, en approfondissant on trouve.

    (Et effectivement, je viens du Java mais je teste, c'est pour cela que j'ai trouvé par la suite)

  4. #4
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Par défaut
    Pour que tu puisses traduire correctement par la suite, la bonne syntaxe est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scene.addText(tr(QString("Bienvenue %1, êtes-vous prêt ?").arg(username)));

  5. #5
    Membre confirmé Avatar de arkham55
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 179
    Par défaut
    Oui j'allais justement le poster! Merci pour ton aide en tout cas.
    Resolved, thanks a lot!

  6. #6
    Membre éprouvé
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Par défaut
    Citation Envoyé par johnlamericain Voir le message
    Tout simplement parce que la concaténation avec l'opérateur + n'existe pas en Qt...
    Ce n'est pas tout à fait exact, on peut concaténer avec l'opérateur +. Ce qui ne va pas dans son cas c'est de fournir à la fonction tr une chaine non statique, puisque la traduction est bien évidemment faite de manière statique.

  7. #7
    Membre confirmé Avatar de arkham55
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 179
    Par défaut
    Oui voilà, l'erreur était bien stipulée dans la console. tr() n'acceptait pas l'argument const QString que je voulais lui passer.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JSP]retour a la ligne dans fonction mailto
    Par logica dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 19/04/2006, 01h50
  2. [J2SE] intérêt du final dans : fonction( final int arg) ?
    Par guile.rondins dans le forum Langage
    Réponses: 4
    Dernier message: 20/07/2005, 16h03
  3. Problème de date dans fonction utlisateur
    Par lutin2003 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2005, 16h25
  4. Switch dans fonction membre
    Par Raish dans le forum C++
    Réponses: 11
    Dernier message: 30/03/2005, 14h41
  5. Réponses: 5
    Dernier message: 13/08/2004, 15h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo