How to Use QSettings/bg: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
'''Български''' [[How to Use QSettings|English]]
[[Category:Developing with Qt::General]]<br />[[Category:HowTo]]<br />[[Category:Snippets]]<br />[[Category:Tutorial]]


=Как се използва QSettings=
[toc align_right=&quot;yes&amp;quot; depth=&quot;3&amp;quot;]


Класът [http://doc.qt.io/qt-5.0/qtcore/qsettings.html QSettings] ''[qt.io]'' осигурява платформено-независими настройки за приложението. Приложеният пример показва как да се записват и зареждат настройки в '''ini''' файл. Инстанцията на '''QSettings''' ще се погрижи за записа и четенето на настройките в '''ini''' файла. Примерът е тестван на Nokia устройство с ОС Symbian^3.
'''Български''' [[How_to_Use_QSettings|English]]


==Запис на настройки==
= Как се използва QSettings =


Методът [http://doc.qt.io/qt-5.0/qtcore/qsettings.html#setValue setValue] ''[qt.io]'' трябва да бъде използван, за да се запамени стойност към ключ (т. към името на насройката).
Класът &quot;QSettings&amp;quot;:http://doc.qt.io/qt-5.0/qtcore/qsettings.html осигурява платформено-независими настройки за приложението. Приложеният пример показва как да се записват и зареждат настройки в '''ini''' файл. Инстанцията на '''QSettings''' ще се погрижи за записа и четенето на настройките в '''ini''' файла. Примерът е тестван на Nokia устройство с ОС Symbian^3.


==Зареждане на настройки==
== Запис на настройки ==


Стойността на дадена настройка може да бъде взета чрез метода [http://doc.qt.io/qt-5.0/qtcore/qsettings.html#value value] ''[qt.io]''.
Методът &quot;setValue&amp;quot;:http://doc.qt.io/qt-5.0/qtcore/qsettings.html#setValue трябва да бъде използван, за да се запамени стойност към ключ (т.е. към името на насройката).


==Пример==
== Зареждане на настройки ==


===mainwindow.h===
Стойността на дадена настройка може да бъде взета чрез метода &quot;value&amp;quot;:http://doc.qt.io/qt-5.0/qtcore/qsettings.html#value.


===mainwindow.cpp===
== Пример ==


===main.cpp===
=== mainwindow.h ===


===Categories:===
<code><br />#ifndef MAINWINDOW_H<br />#define MAINWINDOW_H


* [[:Category:Developing-with-Qt|Developing with Qt]]
#include &lt;QtGui/QMainWindow&amp;gt;
** [[:Category:Developing-with-Qt::General|General]]
 
* [[:Category:HowTo|HowTo]]
#include &lt;QLabel&amp;gt;<br />#include &lt;QLineEdit&amp;gt;<br />#include &lt;QPushButton&amp;gt;
* [[:Category:snippets|snippets]]
 
* [[:Category:Tutorial|Tutorial]]
namespace Ui {<br /> class MainWindow;<br />}
 
class MainWindow : public QMainWindow<br />{<br /> Q_OBJECT<br />public:
 
explicit MainWindow(QWidget '''parent = 0);<br /> virtual ~MainWindow();
<br />private:
<br /> void initGui();
<br /> void loadSettings();
<br /> void saveSettings();
<br />private slots:
<br /> void handleButton();
<br />private:
<br /> QString m_sSettingsFile;
<br /> QLabel''' m_pLabel;
 
QLineEdit* m_pEdit;
 
QPushButton* m_pButton;<br />};
 
#endif // MAINWINDOW_H
 
</code>
 
=== mainwindow.cpp ===
 
<code><br />#include &quot;mainwindow.h&amp;quot;
 
#include &lt;QtCore/QCoreApplication&amp;gt;
 
#include &lt;QSettings&amp;gt;<br />#include &lt;QApplication&amp;gt;
 
MainWindow::MainWindow(QWidget *parent)<br /> : QMainWindow(parent),<br /> m_pLabel(NULL),<br /> m_pEdit(NULL),<br /> m_pButton(NULL)<br />{<br /> initGui();
 
m_sSettingsFile = QApplication::applicationDirPath().left(1) + &quot;:/demosettings.ini&amp;quot;;<br /> loadSettings();
 
if (m_pButton)<br /> {<br /> connect(m_pButton, SIGNAL (released()),this, SLOT (handleButton()));<br /> }<br />}
 
void MainWindow::initGui()<br />{<br /> m_pLabel = new QLabel(&quot;&quot;, this);<br /> m_pLabel-&gt;setGeometry(0,0, 200,40);<br /> m_pEdit = new QLineEdit(&quot;&quot;, this);<br /> m_pEdit-&gt;setGeometry(0,40, 200,40);<br /> m_pButton = new QPushButton(&quot;OK&amp;quot;, this);<br /> m_pButton-&gt;setGeometry(0,80, 200,40);<br />}
 
void MainWindow::loadSettings()<br />{<br /> QSettings settings(m_sSettingsFile, QSettings::NativeFormat);<br /> QString sText = settings.value(&quot;text&amp;quot;, &quot;&quot;).toString();<br /> if (m_pLabel)<br /> {<br /> m_pLabel-&gt;setText(sText);<br /> }<br />}
 
void MainWindow::saveSettings()<br />{<br /> QSettings settings(m_sSettingsFile, QSettings::NativeFormat);<br /> QString sText = (m_pEdit) ? m_pEdit-&gt;text() : &quot;&quot;;<br /> settings.setValue(&quot;text&amp;quot;, sText);<br /> if (m_pLabel)<br /> {<br /> m_pLabel-&gt;setText(sText);<br /> }<br />}
 
void MainWindow::handleButton()<br />{<br /> saveSettings();<br />}
 
MainWindow::~MainWindow()<br />{
 
}<br /></code>
 
=== main.cpp ===
 
<code><br />#include &quot;mainwindow.h&amp;quot;
 
#include &lt;QtGui/QApplication&amp;gt;
 
int main(int argc, char *argv[])<br />{<br /> QApplication app(argc, argv);
 
MainWindow mainWindow;<br /> mainWindow.showMaximized();<br /> return app.exec&amp;amp;#40;&amp;#41;;<br />}

Revision as of 06:22, 24 February 2015




[toc align_right="yes&quot; depth="3&quot;]

Български English

Как се използва QSettings

Класът "QSettings&quot;:http://doc.qt.io/qt-5.0/qtcore/qsettings.html осигурява платформено-независими настройки за приложението. Приложеният пример показва как да се записват и зареждат настройки в ini файл. Инстанцията на QSettings ще се погрижи за записа и четенето на настройките в ini файла. Примерът е тестван на Nokia устройство с ОС Symbian^3.

Запис на настройки

Методът "setValue&quot;:http://doc.qt.io/qt-5.0/qtcore/qsettings.html#setValue трябва да бъде използван, за да се запамени стойност към ключ (т.е. към името на насройката).

Зареждане на настройки

Стойността на дадена настройка може да бъде взета чрез метода "value&quot;:http://doc.qt.io/qt-5.0/qtcore/qsettings.html#value.

Пример

mainwindow.h

<br />#ifndef MAINWINDOW_H<br />#define MAINWINDOW_H

#include &lt;QtGui/QMainWindow&amp;gt;

#include &lt;QLabel&amp;gt;<br />#include &lt;QLineEdit&amp;gt;<br />#include &lt;QPushButton&amp;gt;

namespace Ui {<br /> class MainWindow;<br />}

class MainWindow : public QMainWindow<br />{<br /> Q_OBJECT<br />public:

explicit MainWindow(QWidget '''parent = 0);<br /> virtual ~MainWindow();
<br />private:
<br /> void initGui();
<br /> void loadSettings();
<br /> void saveSettings();
<br />private slots:
<br /> void handleButton();
<br />private:
<br /> QString m_sSettingsFile;
<br /> QLabel''' m_pLabel;

QLineEdit* m_pEdit;

QPushButton* m_pButton;<br />};

#endif // MAINWINDOW_H

mainwindow.cpp

<br />#include &quot;mainwindow.h&amp;quot;

#include &lt;QtCore/QCoreApplication&amp;gt;

#include &lt;QSettings&amp;gt;<br />#include &lt;QApplication&amp;gt;

MainWindow::MainWindow(QWidget *parent)<br /> : QMainWindow(parent),<br /> m_pLabel(NULL),<br /> m_pEdit(NULL),<br /> m_pButton(NULL)<br />{<br /> initGui();

m_sSettingsFile = QApplication::applicationDirPath().left(1) + &quot;:/demosettings.ini&amp;quot;;<br /> loadSettings();

if (m_pButton)<br /> {<br /> connect(m_pButton, SIGNAL (released()),this, SLOT (handleButton()));<br /> }<br />}

void MainWindow::initGui()<br />{<br /> m_pLabel = new QLabel(&quot;&quot;, this);<br /> m_pLabel-&gt;setGeometry(0,0, 200,40);<br /> m_pEdit = new QLineEdit(&quot;&quot;, this);<br /> m_pEdit-&gt;setGeometry(0,40, 200,40);<br /> m_pButton = new QPushButton(&quot;OK&amp;quot;, this);<br /> m_pButton-&gt;setGeometry(0,80, 200,40);<br />}

void MainWindow::loadSettings()<br />{<br /> QSettings settings(m_sSettingsFile, QSettings::NativeFormat);<br /> QString sText = settings.value(&quot;text&amp;quot;, &quot;&quot;).toString();<br /> if (m_pLabel)<br /> {<br /> m_pLabel-&gt;setText(sText);<br /> }<br />}

void MainWindow::saveSettings()<br />{<br /> QSettings settings(m_sSettingsFile, QSettings::NativeFormat);<br /> QString sText = (m_pEdit) ? m_pEdit-&gt;text() : &quot;&quot;;<br /> settings.setValue(&quot;text&amp;quot;, sText);<br /> if (m_pLabel)<br /> {<br /> m_pLabel-&gt;setText(sText);<br /> }<br />}

void MainWindow::handleButton()<br />{<br /> saveSettings();<br />}

MainWindow::~MainWindow()<br />{

}<br />

main.cpp


#include "mainwindow.h&quot;

  1. include <QtGui/QApplication&gt;

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

MainWindow mainWindow;
mainWindow.showMaximized();
return app.exec&amp;#40;&#41;;
}