Pages : 1
#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
Pages : 1