Table of Content
Български English
Как се използва QSettings
Класът QSettings [doc.qt.nokia.com] осигурява платформено-независими настройки за приложението. Приложеният пример показва как да се записват и зареждат настройки в ini файл. Инстанцията на QSettings ще се погрижи за записа и четенето на настройките в ini файла. Примерът е тестван на Nokia устройство с ОС Symbian^3.
Запис на настройки
Методът setValue [doc.qt.nokia.com] трябва да бъде използван, за да се запамени стойност към ключ (т.е. към името на насройката).
Зареждане на настройки
Стойността на дадена настройка може да бъде взета чрез метода value [doc.qt.nokia.com].
Пример
mainwindow.h
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
- #include <QtGui/QMainWindow>
- #include <QLabel>
- #include <QLineEdit>
- #include <QPushButton>
- namespace Ui {
- class MainWindow;
- }
- {
- Q_OBJECT
- public:
- virtual ~MainWindow();
- private:
- void initGui();
- void loadSettings();
- void saveSettings();
- private slots:
- void handleButton();
- private:
- QString m_sSettingsFile;
- };
- #endif // MAINWINDOW_H
mainwindow.cpp
- #include "mainwindow.h"
- #include <QtCore/QCoreApplication>
- #include <QSettings>
- #include <QApplication>
- m_pLabel(NULL),
- m_pEdit(NULL),
- m_pButton(NULL)
- {
- initGui();
- loadSettings();
- if (m_pButton)
- {
- connect(m_pButton, SIGNAL(released()),this, SLOT(handleButton()));
- }
- }
- void MainWindow::initGui()
- {
- m_pLabel->setGeometry(0,0, 200,40);
- m_pEdit->setGeometry(0,40, 200,40);
- m_pButton->setGeometry(0,80, 200,40);
- }
- void MainWindow::loadSettings()
- {
- if (m_pLabel)
- {
- m_pLabel->setText(sText);
- }
- }
- void MainWindow::saveSettings()
- {
- settings.setValue("text", sText);
- if (m_pLabel)
- {
- m_pLabel->setText(sText);
- }
- }
- void MainWindow::handleButton()
- {
- saveSettings();
- }
- MainWindow::~MainWindow()
- {
- }
main.cpp
- #include "mainwindow.h"
- #include <QtGui/QApplication>
- int main(int argc, char *argv[])
- {
- MainWindow mainWindow;
- mainWindow.showMaximized();
- return app.exec();
- }

