Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
How to Use QSettings/bg: Difference between revisions
Jump to navigation
Jump to search
AutoSpider (talk | contribs) (Remove non-functioning "toc" command) |
AutoSpider (talk | contribs) (Don't #include the module prefix) |
||
Line 29: | Line 29: | ||
#define MAINWINDOW_H | #define MAINWINDOW_H | ||
#include < | #include <QMainWindow> | ||
#include <QLabel> | #include <QLabel> | ||
Line 79: | Line 79: | ||
#include "mainwindow.h" | #include "mainwindow.h" | ||
#include < | #include <QCoreApplication> | ||
#include <QSettings> | #include <QSettings> | ||
Line 148: | Line 148: | ||
#include "mainwindow.h" | #include "mainwindow.h" | ||
#include < | #include <QApplication> | ||
int main(int argc, char *argv[]) | int main(int argc, char *argv[]) |
Latest revision as of 13:26, 27 April 2015
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine. Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean. |
Български English
Как се използва QSettings
Класът QSettings осигурява платформено-независими настройки за приложението. Приложеният пример показва как да се записват и зареждат настройки в ini файл. Инстанцията на QSettings ще се погрижи за записа и четенето на настройките в ini файла. Примерът е тестван на Nokia устройство с ОС Symbian^3.
Запис на настройки
Методът setValue трябва да бъде използван, за да се запамени стойност към ключ (т.е. към името на насройката).
Зареждане на настройки
Стойността на дадена настройка може да бъде взета чрез метода value.
Пример
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget '''parent = 0);
virtual ~MainWindow();
private:
void initGui();
void loadSettings();
void saveSettings();
private slots:
void handleButton();
private:
QString m_sSettingsFile;
QLabel''' m_pLabel;
QLineEdit* m_pEdit;
QPushButton* m_pButton;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include <QCoreApplication>
#include <QSettings>
#include <QApplication>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent),
m_pLabel(NULL),
m_pEdit(NULL),
m_pButton(NULL)
{
initGui();
m_sSettingsFile = QApplication::applicationDirPath().left(1) + ":/demosettings.ini";
loadSettings();
if (m_pButton)
{
connect(m_pButton, SIGNAL (released()),this, SLOT (handleButton()));
}
}
void MainWindow::initGui()
{
m_pLabel = new QLabel("", this);
m_pLabel->setGeometry(0,0, 200,40);
m_pEdit = new QLineEdit("", this);
m_pEdit->setGeometry(0,40, 200,40);
m_pButton = new QPushButton("OK", this);
m_pButton->setGeometry(0,80, 200,40);
}
void MainWindow::loadSettings()
{
QSettings settings(m_sSettingsFile, QSettings::NativeFormat);
QString sText = settings.value("text", "").toString();
if (m_pLabel)
{
m_pLabel->setText(sText);
}
}
void MainWindow::saveSettings()
{
QSettings settings(m_sSettingsFile, QSettings::NativeFormat);
QString sText = (m_pEdit) ? m_pEdit->text() : "";
settings.setValue("text", sText);
if (m_pLabel)
{
m_pLabel->setText(sText);
}
}
void MainWindow::handleButton()
{
saveSettings();
}
MainWindow::~MainWindow()
{
}
main.cpp
- include "mainwindow.h"
- include <QApplication>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow mainWindow;
mainWindow.showMaximized();
return app.exec();
}