From Mirek Socha zapraszam!

Qt: Q Settings

Opis

Klasa umożliwia przechowywanie parametrów programu w plikach konfiguracyjnych zarządzanych przez system operacyjny. Parametrami mogą być np. rozmiary okna programu, pozycja okna w momencie zamykania, lista plików ostatnio użytych itp.

Szczegółowy opis znajduje się na stronie dokumentacji Qt. Poniższe przykłady opracowano na podstawie dokumentacji Qt.

Zapis ustawień programu

void MainWindow::writeSettings()
{
     QSettings settings("MySoftware Inc.", "MyApplication");   // identyfikator programu

     settings.beginGroup("MainWindow");     // początek grupy
       settings.setValue("size", size());   // rozmiary okna
       settings.setValue("pos",  pos() );     // pozycja okna
     settings.endGroup();                   // koniec grupy

}

Odczyt ustawień programu

void MainWindow::readSettings()
{
     Settings settings("MySoftware Inc.", "MyApplication");   // odczyt identyfikatora konfiguracji

     settings.beginGroup("MainWindow");
       resize (settings.value("size", QSize(400, 400)).toSize());  // zmiana rozmiarów okna
       move   (settings.value("pos", QPoint(200, 200)).toPoint()); // zmiana pozycji okna
     settings.endGroup();

}
 

Umieszczenie w kodzie aplikacji

Wczytywanie konfiguracji programu wywołuje się zazwyczaj w konstruktorze głównego okna programu:

MainWindow::MainWindow()
 {
     ...
     readSettings();
 }
 

Zapis konfiguracji programu najlepiej umieścić w reimplementacji metody odpowiadającej za zamykanie programu, na przykład w taki sposób:

void MainWindow::closeEvent(QCloseEvent *event)
 {
     if (czyNaPewnoZamknacProgram()) {   // potwierdzenie zamknięcia programu
         writeSettings();                // zapis konfiguracji programu
         event->accept();                // potwierdzenie zamknięcia programu
     } else {
         event->ignore();                // zignorowanie zamknięcia programu
     }
 }
Retrieved from http://home.agh.edu.pl/~socha/pmwiki/pmwiki.php/Qt/QSettings
Data ostatniej modyfikacji: 15.12.2010, 11:13