Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 30/01/2010, à 14:52

erlik

c++, Qt4, et accents

Hello

Je debute en C++ et Qt (jusque là, je programmais des applications en console), en apprenant via le Site des Zéros.
Or en reprenant un code, je me suis rendu compte que les accents ne passent pas dans le programme compilé.
Par ex, le code

#include <QApplication>
#include <QtGui>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QWidget window;

    QLabel *label = new QLabel("Salut les Zéros !", &window);
 
   window.show();

    return app.exec();
}

m'affiche une fenêtre avec

Salut les ZÄ©ros

Je voulais donc savoir comment éviter cele.

Merci


Je ne suis pas un geek! Je suis un être humain!

Hors ligne

#2 Le 30/01/2010, à 15:22

yoann21

Re : c++, Qt4, et accents

Salut,
Ce n'est qu'un bête problème d'encodage en utf8.
La solution :

   QLabel *label = new QLabel(QString::fromUtf8("Salut les Zéros !"), &window);

Un conseil sers toi de QString::fromUtf8(QString) qui est une fonction statique pour toutes tes chaînes tant que ton programme reste sous linux.

Hors ligne

#3 Le 31/01/2010, à 20:53

erlik

Re : c++, Qt4, et accents

ha, je savais bien que Qt permettait de regler ça, mais j'arrivais pas a trouver...
merci en tt cas !


Je ne suis pas un geek! Je suis un être humain!

Hors ligne

#4 Le 02/04/2010, à 16:39

arnaud_d

Re : c++, Qt4, et accents

Bonjour,

Je vois qu'on a les mêmes sources d'enseignement !

N'y aurait-il pas une méthode plus simple que d'utiliser à chaque fois QString::fromUtf8 parce que je trouve ça assez fastidieux. N'est-il pas possible de définir l'encodage une bonne fois pour toute ? (comme en python avec # -*- coding: utf-8 -*-)

Si non, comment est-il conseillé de faire ? Enregistrer ses fichiers dans un autre encodage ? Lequel ?

Merci !

Hors ligne

#5 Le 02/04/2010, à 20:37

obiwankennedy

Re : c++, Qt4, et accents

dans ton main après le QApplication ou le QCoreApplication il faut faire un :

        QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
        QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
        QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#6 Le 02/04/2010, à 21:51

Teofifil

Re : c++, Qt4, et accents

Merci du conseil obiwankennedy mais il ne faut pas oublier de faire un

#include <QTextCodec>

dans le mainwindow.h

Hors ligne