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

Qt Discussion :

Problème de page de code


Sujet :

Qt

  1. #1
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Points : 403
    Points
    403
    Par défaut Problème de page de code
    Salut,

    Voilà mon application donne sur une console ( Linux ) le message : Qt can't set Locale.

    Le symptôme est que mes QString initialisées ne rendent pas les caractères étendus.

    J'ai essayé

    QString z( tr("Les 5 fichiers encodés sélectionnés ont été supprimé") ) ;

    Rien n'y fait, ça m'affiche de la purée dans une boite de dialogue par exemple.

    J'ai essayé fromUtf8, fromLatin1, toUtf8, toLatin1 rien y fait. C'est la poisse.

    Si quelqu'un pouvait me donner un avis, ce serait bien venu...

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    peut tu faire un code minimal avec ce problème?

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Points : 403
    Points
    403
    Par défaut
    Salut,

    Voiçi la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    int MainWindow::encoder()
    {
      int i = - 1 ;	
     
      QString prompt ;
      g_flist.clear();
     
      g_flist = QFileDialog::getOpenFileNames() ;
     
      if( ! g_flist.isEmpty() )
      {
         prompt.sprintf( "Encoder ces %d objets", g_flist.count() ) ;
     
         i = setConfirm( prompt , g_flist ) ;
         if( i == 1 )
         {
           for( i = 0 ; i < g_flist.count() ; i++ )
            doEncode( g_flist.at(i) ) ;
           prompt =  tr( "Les %d objets ont été encodé" ) ;		
           QMessageBox::information( this, "Encoder...", prompt.arg(g_flist.count()) , QMessageBox::Yes  ) ;
         }
         else 
         if( i == 0 )
         {  
         	prompt = tr("Annulation pour les %1 objets sélectionnés") ;
         	QMessageBox::information( this, "Encoder...", prompt.arg(g_flist.count()) , QMessageBox::Yes  ) ;		
         }	
      }
      return i ;
    }
    A noter que c'est dès le getOpenFileNames que la console de sortie affiche "Qt can't set locale modifiers".

    Je ne comprends pas.

    J'ai ajouté dans main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int main(int argc, char ** argv)
    {
    	QApplication app( argc, argv );
    	QLocale L(QLocale::French);  // ajouté
    	QLocale::setDefault(L);  // ajouté
    	MainWindow win;
    	win.show(); 
    	app.connect( &app, SIGNAL( lastWindowClosed() ), &app, SLOT( quit() ) );
    	return app.exec();
    }
    Ca ne change rien. De plus la documentation indique QLocale::France alors que c'est QLocale::French

    Une idée ?

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    es ce que tu as le problème avec ce code????

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <QtGui>
     
    int main(int argc, char ** argv)
    { 
    	QApplication app( argc, argv );
    	QLocale L(QLocale::French); 
    	QLocale::setDefault(L);  
    	QStringList g_flist = QFileDialog::getOpenFileNames() ;
    	QWidget win;
    	win.show(); 
    	return app.exec(); 
    }

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Points : 403
    Points
    403
    Par défaut
    Salut,

    Non la solution naïve ne fonctionne pas. Une piste. C'est l'encodage de l'IDE de qtdevelop .

    J'ai beau mettre tout en utf8, c'est toujours de la purée pour les boites de dialogues.

    Par contre l'objet QStringList renvoi bien une représentation fidèle avec des différentes pages de code.

    Je ne comprend pas, soit je fais une erreur de programmation, soit l'IDE ( qDevelop)
    n'est pas à la hauteur.

    J'en appelle à votre expertise, pour y voir clair dans cette question.

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    c'est quel linux que tu as?

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Points : 403
    Points
    403
    Par défaut
    Salut,

    Ca y est le problème est partiellement résolu. Avec Linux il faut que je navigue systématiquement avec QString::fromUtf8 et QString::toUtf8. Ca en rajoute une couche avec les std::string.


    Mon Linux c'est Mandriva 2007.

    Le problème c'est que ce code devra être modifié avec Windows, à moins de faire de la compilation conditionnelle, ce qui ne me plait pas.

    Mais bon, faute de grives on mange des cailles...

  8. #8
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par dj.motte Voir le message
    . Avec Linux il faut que je navigue systématiquement avec QString::fromUtf8 et QString::toUtf8. Ca en rajoute une couche avec les std::string.

    Tu as toujours le problème ou c'est juste quand tu change la locale?
    Ton linux est en anglais?
    Il me semble que la notion de locale dépend de l'os et non de Qt? Peut etre que le problème vien que la locale fr n'est pas intallé? J'ai du mal à comprendre ton problème...

  9. #9
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Tu utilise quelle version de Qt?

  10. #10
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Points : 403
    Points
    403
    Par défaut
    Salut,

    J'utilise QT 4.3.3 avec Linux Mandriva 2007 et XP avec qDevelop.

    Avec Linux j'ai ce fameux QT can't set Locale modifier. Peut-être que j'ai mal configuré la compilation lors de l'installation. Aucune idée.

Discussions similaires

  1. Problème ajout WebPart via code behind sur une page d'une feature
    Par atfximen dans le forum Développement Sharepoint
    Réponses: 6
    Dernier message: 23/02/2012, 10h28
  2. Problème de page de code
    Par baloub dans le forum VB.NET
    Réponses: 2
    Dernier message: 13/03/2011, 15h20
  3. Réponses: 1
    Dernier message: 09/04/2010, 20h02
  4. Problème de page de code
    Par dj.motte dans le forum Firebird
    Réponses: 1
    Dernier message: 15/01/2008, 22h31
  5. problème page de codes
    Par dj.motte dans le forum C++
    Réponses: 8
    Dernier message: 11/08/2007, 10h35

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