Accès au fichier config.ini
Bonjour,
Je suis en train de développer une application avec Qt.
Je débute dans la programmation sur Qt.
Mon problème est le suivant, je n'arrive pas à accéder à mes paramètres de configuration du fichier config.ini.
Le fichier config.ini est dans le même dossier que mon exécutable Qt.
En utilisant la ligne de code suivante dans le fichier mainwindow.cpp :
QSettings settings( QApplication::applicationDirPath() + "/config.ini", QSettings::IniFormat);
J'ai une erreur lors de la compilation :
QCoreApplication::applicationDirPath: Please instantiate the QApplication object first
Le programme s'est terminé subitement.
De plus, les paramètres de configuration ne sont pas chargés.
Par contre si j'utilise le chemin absolu, les paramètres sont bien chargés.
QSettings settings( "C:/wamp/www/qt/config.ini", QSettings::IniFormat);
Pourriez-vous me donner des pistes ?
Merci d'avance...
Voici le contenu de mes fichiers :
main.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| #include <QApplication>
#include <QTranslator>
#include <QLibraryInfo>
#include <QLocale>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// pour avoir les boutons des boîtes de dialogue dans la langue locale (fr par défaut)
QTranslator qtTranslator;
qtTranslator.load( "qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath) );
a.installTranslator(&qtTranslator);
MainWindow w;
w.show();
return a.exec();
} |
mainwindow.h
Code:
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| #ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtCore/QVariant>
#include <QtCore/QCryptographicHash>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QMessageBox>
#include <QtGui/QDialogButtonBox>
#include <QtGui/QComboBox>
#include <QtGui/QDateEdit>
#include <QtGui/QFormLayout>
#include <QtGui/QGroupBox>
#include <QtGui/QHBoxLayout>
#include <QtGui/QHeaderView>
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include <QtGui/QPlainTextEdit>
#include <QtGui/QMainWindow>
#include <QtGui/QToolButton>
#include <QtGui/QVBoxLayout>
#include <QtGui/QWidget>
#include <QtGui/QFileDialog>
#include <QtGui/QProgressBar>
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>
#include <QtScript/QScriptEngine>
#include <QtScript/QScriptValueIterator>
#include <QFtp>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow();
~MainWindow();
static QString CheminAbsoluFichierIni;
static QString url;
static QString FTPhost;
static QString FTPlogin;
static QString FTPpassword;
static quint16 FTPport;
...
};
#endif // MAINWINDOW_H |
mainwindow.cpp
Code:
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
| #include <QApplication>
#include <QSettings>
#include <QDateTime>
#include "mainwindow.h"
/**
* Initialisation des variables statiques à configurer
*/
// Ouverture du fichier INI
QSettings settings( QApplication::applicationDirPath() + "/config.ini", QSettings::IniFormat);
// Addresse
QString MainWindow::SITurl = settings.value("WebService/url","http://www.mon-url-par-defaut.com").toString();
// Addresse du serveur FTP
QString MainWindow::FTPhost = settings.value("Serveur/FTPhost","127.0.0.1").toString();
QString MainWindow::FTPlogin = settings.value("Serveur/FTPlogin","anonymous").toString();
QString MainWindow::FTPpassword = settings.value("Serveur/FTPpassword","").toString();
quint16 MainWindow::FTPport = settings.value("Serveur/FTPport","21").toInt();
MainWindow::MainWindow() : QMainWindow(){
this->setupUi();
}
MainWindow::~MainWindow()
{
delete this;
}
/*...*/ |
config.ini
Code:
1 2 3 4 5 6 7 8
| [WebService]
url=http://mon-url.com
[ServeurVideo]
FTPhost=127.0.0.1
FTPlogin=ftp
FTPpassword=pass
FTPport=21 |