Précédent   Forum des professionnels en informatique > C et C++ > Bibliothèques > Qt
Qt Forum d'entraide technique sur la bibliothèque Qt. Avant de poster -> F.A.Q Qt
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/02/2012, 09h37   #1
Invité régulier
 
Homme Florian
IRIS
Inscription : septembre 2011
Messages : 34
Détails du profil
Informations personnelles :
Nom : Homme Florian
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : IRIS
Secteur : Service public

Informations forums :
Inscription : septembre 2011
Messages : 34
Points : 8
Points : 8
Envoyer un message via MSN à Zanor84 Envoyer un message via Skype™ à Zanor84
Par défaut QFileDialog::getOpenFileName problème de chemin

Bonjour à tous.

J'ai un petit soucis avec la méthode getOpenFileName, en effet celle ci me retourne un chemin qui n'est pas correct, à savoir dans mon cas (C:/save.sql) au lieu de (C:\save.sql) ce qui me pause problème pour ce que j'en fait.

Connaissez vous une solution directement en utilisant la méthode, ou faut il manipuler le QString pour y changer les / en \, si je dois le faire avec vous une piste pour m'éclairer sur la façon de procéder pour n'importe quel chemin ?

Merci d'avance.

Cordialement Flo.
Zanor84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 10h39   #2
Modérateur
 
Homme
Ingénieur développement logiciels
Inscription : mai 2009
Messages : 574
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 23
Localisation : France

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

Informations forums :
Inscription : mai 2009
Messages : 574
Points : 916
Points : 916
Bonjour,

La façon prévue par Qt est d'utiliser QDir::toNativeSeparators(QString).
Troudhyl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 10h45   #3
Invité régulier
 
Homme Florian
IRIS
Inscription : septembre 2011
Messages : 34
Détails du profil
Informations personnelles :
Nom : Homme Florian
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : IRIS
Secteur : Service public

Informations forums :
Inscription : septembre 2011
Messages : 34
Points : 8
Points : 8
Envoyer un message via MSN à Zanor84 Envoyer un message via Skype™ à Zanor84
Merci bien, ça marche niquel.

Me voila avec un nouveau problème

Code :
1
2
3
4
5
6
 
QProcess *process = new QProcess();
QString appli = "C:\\mysql\\bin\\mysql.exe";
QStringList arguments;
arguments <<"-h"<<"localhost"<<"-u"<<"root"<<"-pmdp"<<"apterix"<<"<"<<"C:\\save.sql";
int test = process->execute(appli,arguments);
Ce code permet ( normalement ) de restaurer une base Mysql
l'exit statut me retourne 1 donc ça a crash, puis le programme lancer n'a pas eu l'effet désirer.

une idée ?

le code suivant permet de sauvegarde une base

Code :
1
2
3
4
5
6
 
QProcess *process = new QProcess();
QString appli = "C:\\mysql\\bin\\mysqldump.exe";
QStringList arguments;
arguments <<"-h"<<"localhost"<<"-u"<<"root"<<"-pmdp"<<"-rc:\\save.sql"<<"apterix";
int test = process->execute(appli,arguments);
celui ci fonctionne très bien ... allez savoir pourquoi lui et pas l'autre...
Zanor84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 15h19   #4
Membre habitué
 
Avatar de Nykoo
 
Inscription : février 2007
Messages : 229
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 229
Points : 109
Points : 109
Il n'y a pas d'espaces entre tes arguments, peut être que ça vient de là?
Nykoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 15h41   #5
Invité régulier
 
Homme Florian
IRIS
Inscription : septembre 2011
Messages : 34
Détails du profil
Informations personnelles :
Nom : Homme Florian
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : IRIS
Secteur : Service public

Informations forums :
Inscription : septembre 2011
Messages : 34
Points : 8
Points : 8
Envoyer un message via MSN à Zanor84 Envoyer un message via Skype™ à Zanor84
l’opérateur "<<" crée les espaces, et le deuxième code fonctionne alors que c'est la même construction
Zanor84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 16h01   #6
Modérateur
 
Homme
Ingénieur développement logiciels
Inscription : mai 2009
Messages : 574
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 23
Localisation : France

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

Informations forums :
Inscription : mai 2009
Messages : 574
Points : 916
Points : 916
Citation:
Envoyé par Zanor84 Voir le message
l’opérateur "<<" crée les espaces
Non pas du tout, l'opérateur << de QStringList (de QList donc) sert juste à ajouter un élément à la fin. En revanche, plus loin dans l'implémentation Qt, lorsque Qt reconstitue la chaine, effectivement il met bien des espaces :

qprocess_win.cpp
Code C++ :
1
2
3
4
5
6
7
8
9
10
11
12
static QString qt_create_commandline(const QString &program, const QStringList &arguments)
{
    QString args;
    /* ... */
 
    for (int i=0; i<arguments.size(); ++i) {
        QString tmp = arguments.at(i);
        /* traitement des caractères spéciaux etc... */
        args += QLatin1Char(' ') + tmp;
    }
    return args;
}

Pour revenir au souci principal, tu as essayé toi-même le cas qui ne fonctionne pas depuis une console ?
Troudhyl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 16h13   #7
Invité régulier
 
Homme Florian
IRIS
Inscription : septembre 2011
Messages : 34
Détails du profil
Informations personnelles :
Nom : Homme Florian
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : IRIS
Secteur : Service public

Informations forums :
Inscription : septembre 2011
Messages : 34
Points : 8
Points : 8
Envoyer un message via MSN à Zanor84 Envoyer un message via Skype™ à Zanor84
Oui depuis une console ça fonctionne, pardon pour l'erreur ^^ tout ça pour dire que les espaces étaient bien créee
Zanor84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h14.


 
 
 
 
Partenaires

Hébergement Web