Example of using the ConfigurationWidget class
This is an example of how to show and modify configuration parameters from GUI
#include <QApplication> #include <QDialog> #include <QVBoxLayout> #include "configuration/configurationparameters.h" #include "configuration/inifilesupport.h" #include "configuration/evorobotfilesupport.h" #include "configuration/parametersreader.h" #include "configuration/configurationwidget.h" #include <iostream> class ParametersDialog : public QDialog { public: ParametersDialog(const char *file, bool caseSensitive) : QDialog(NULL), m_confs(caseSensitive), m_confWidget(NULL) { // Creating a layout QVBoxLayout *layout = new QVBoxLayout(this); // Creating the configuration widget and adding it to layout m_confWidget = new ConfigurationWidget(this); layout->addWidget(m_confWidget); // Loading parameters. The kind of file is automatically guessed from extension (you can however explicitly set it) if (!m_confs.loadParameters(file)) { std::cerr << "Loading parameters from file " << file << " failed" << std::endl; } // Adding configuration onbjecto to the configuration widget m_confWidget->setConfigurationParameters(&m_confs); } ~ParametersDialog() { // Storing results m_confWidget->store(); // Saving them m_confs.saveParameters("prova.ini"); } private: ConfigurationParameters m_confs; ConfigurationWidget *m_confWidget; }; int main(int argc, char *argv[]) { QApplication app(argc, argv); // We expect the name of the file to read on the command line if (argc != 3) { std::cerr << "Usage: " << argv[0] << " <infile> <0|1>" << std::endl; std::cerr << "where 0 means case insensitive mode, 1 case sensitive mode. File format is guessed from file extension" << std::endl; return 1; } const bool caseSensitive = (argv[2][0] == '1') ? true : false; ParametersDialog dialog(argv[1], caseSensitive); dialog.show(); return app.exec(); }