Запазване на състоянието на програма
Страницата е създадена на:15 април 2019 и редактирана на:15 април 2019
Почти всяка програма се налага да запазва информация за състоянието си в момента на затварянето си и да използва запазената информация при следващото си стартиране. Необходимо е, например, да се съхраняват: направени от потребителя настройки, предпочитаното положение върху екрана и размерите на прозореца, списъка на последно отваряните файлове и др. За лесно осъществяване на това запазване и четене на информация в Qt е предвиден класът обекти QSettings. Запазването на стойности от едно изпълнение на програма и четенето им при следващото изпълнение се осъществява в следния ред:
В някоя от функциите, които се изпълняват при затваряне на главния прозорец на програмата, например: void closeEvent(QCloseEvent *event) се създава обект от тип QSettings:
QSettings settings("MyCompany", "My Program");
Тук "MyCompany" и "My Program" са имена на фирма и на програма, които в съчетание еднозначно идентифицират програмата, запазила данни.
В създадения обект settings, с функцията void setValue(const QString &key, const QVariant &value) се запазват стойностите, които трябва да се съхранят до следващото стартиране на програмата.
Например:
settings.setValue("size",size());
запазва размера на главния прозорец.
Вторият параметър на функцията setValue е от тип QVariant, така че функцията позволява запазване на стойности от много различни типове: int, QString, QStringList и др. За повече информация вижте страниците относно типа QVariant в документацията.
Запазената информация в Windows се съхранява в ключ на регистъра:
HKEY_CURRENT_USERSoftwareMyCompanyMy Program
В Mac OS X информацията се запазва в поддиректория Library/Preferences на личната директория на потребителя стартирал програмата, под име:
com.MyCompany.My Program.plist.
При двойно щракване с мишката върху иконата на тази структура във Finder се отваря програмата Property List Editor, с която може да се редактира, записаната информация.
В Linux информацията се записва в конфигурационен файл с разширение .conf и име, както е името на програмата, например: My Program.conf. Този файл се записва в поддиректория с име, като зададеното име на фирма, в скритата директория .config, в личната директория на потребителя, стартиращ програмата. Например, ако името на потребителя е UserName, абсолютния път до файла, в който програмата My Program, на фирмата MyCompany, записва състоянието си е:
/home/UserName/.config/MyCompany/My Program.conf.
При стартиране на програмата запазените данни се четат от конструктора на главния прозорец. За да се прочетат запазените данни се създава обект от QSettings:
QSettings settings("MyCompany", "My Program");
със същите параметри, като на обекта, с който са запазени данните. Запазените стойности се присвояват на подходящи променливи, които ще бъдат използвани в програмата. Например:
Qstring fileName = settings.value("lastFile").toString();
Предишна страница: Превеждане на интерфейса
Следваща страница: Работа с файлове