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
mainwindow.h
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 #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.cpp
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
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
config.ini
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 #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; } /*...*/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager