Сохранение настроек приложения
Сохранение настроек приложения
В конструкторе MainWindow мы уже вызывали функцию readSettings() для загрузки сохраненных приложением настроек. Аналогично в функции closeEvent() мы вызывали writeSettings() для сохранения настроек. Эти функции являются последними функциями—членами MainWindow, которые необходимо реализовать.
01 void MainWindow::writeSettings()
02 {
03 QSettings settings("Software Inc.", "Spreadsheet");
04 settings.setValue("geometry", geometry());
05 settings.setValue("recentFiles", recentFiles);
06 settings.setValue("showGrid", showGridAction->isChecked());
07 settings.setValue("autoRecalc", autoRecalcAction->isChecked());
08 }
Функция writeSettings() сохраняет «геометрию» окна (положение и размер), список последних открывавшихся файлов и опции Show Grid (показать сетку) и Auto—Recalculate (автоматический повтор вычислений).
По умолчанию QSettings сохраняет настройки приложения в месте, которое зависит от используемой платформы. В системе Windows для этого используется системный реестр; в системе Unix данные хранятся в текстовых файлах; в системе Mac OS X для этого используется прикладной интерфейс задания установок Core Foundation Preferences.
В аргументах конструктора задаются название организации и имя приложения. Эта информация используется затем (причем по-разному для различных платформ) для определения места расположения настроек.
QSettings хранит настройки в виде пары ключ—значение. Здесь ключ подобен пути файловой системы. Подключи можно задавать, используя синтаксис, подобный тому, который применяется при указании пути (например, findDialog/matchCase), или используя beginGroup() и endGroup():
settings.beginGroup("findDialog");
settings.setValue("matchCase", caseCheckBox->isChecked());
settings.setValue("searchBackward", backwardCheckBox->isChecked());
settings.endGroup();
Значение value может иметь типы int, bool, double, QString, QStringList или любой другой, поддерживаемый QVariant, включая зарегистрированные пользовательские типы.
01 void MainWindow::readSettings()
02 {
03 QSettings settings("Software Inc.", "Spreadsheet");
04 QRect rect = settings.value("geometry",
05 QRect(200, 200, 400, 400)).toRect();
06 move(rect.topLeft());
07 resize(rect.size());
08 recentFiles = settings.value("recentFiles").toStringList();
09 updateRecentFileActions();
10 bool showGrid = settings.value("showGrid", true).toBool();
11 showGridAction->setChecked(showGrid);
12 bool autoRecalc = settings.value("autoRecalc", true).toBool();
13 autoRecalcAction->setChecked(autoRecalc);
14 }
Функция readSettings() загружает настройки, которые были сохранены функцией writeSettings(). Второй аргумент функции value() определяет значение, принимаемое по умолчанию в случае отсутствия запрашиваемого параметра. Принимаемые по умолчанию значения будут использованы при первом запуске приложения. Поскольку второй аргумент не задан для списка недавно используемых файлов, этот список будет пустым при первом запуске приложения.
Qt содержит функцию QWidget::setGeometry(), которая дополняет функцию QWidget:: geometry(), однако они не всегда работают должным образом в системе X11 из-за ограничений многих оконных менеджеров. По этой причине мы используем вместо них функции move() и resize(). (Подробную информацию по тому вопросу можно найти по адресу http://doc.trolltech.com/4.1/geometry.html.)
Весь программный код MainWindow, относящийся к объектам QSettings, мы разместили в функциях readSettings() и writeSettings(); такой подход лишь один из возможных. Объект QSettings может создаваться для запроса или модификации каких-нибудь настроек в любой момент во время выполнения приложения и из любого места программы.
Теперь мы завершили построение главного окна MainWindow приложения Электронная таблица. В следующих разделах мы рассмотрим возможность модификации приложения Электронная таблица для обеспечения работы со многими документами и реализации экранных заставок. Мы завершим реализацию этих функций, в том числе обеспечивающих обработку формул и сортировку, в следующей главе.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Установка локали (локальных настроек)
Установка локали (локальных настроек) setlocaleУстановка региональных настроек.Синтаксис:string SetLocale(string category, string locale);Функция setlocale устанавливает текущую локаль, с которой будут работать функции преобразования регистра символов, вывода даты-времени и т.д. Вообще говоря, для
4.3.2. Изменение настроек по умолчанию
4.3.2. Изменение настроек по умолчанию Давайте теперь посмотрим, откуда берутся значения по умолчанию. Все это хранится в файле /etc/default/useradd. Взглянем на содержимое этого файла:# useradd defaults fileGROUP=100HOME=/homeINACTIVE=-1EXPIRE=SHELL=/bin/bash SKEL=/etc/skelЭтот файл можно редактировать вручную или
13.7. Оптимизация настроек сервера DNS
13.7. Оптимизация настроек сервера DNS Как любой хороший администратор, вы хотите, чтобы ваш сервер DNS быстро обслуживал запросы клиентов. Но к вашему серверу могут подключаться пользователи не из вашей сети, а, например, из сети конкурирующего провайдера. Тогда ваш сервер
Появилось больше настроек при создании нового соединения
Появилось больше настроек при создании нового соединения Для того чтобы создать новое соединение, нужно сначала перейти в нужную папку, потом нажать правую кнопку мыши и выбрать Новое соединение. На экране откроется одноименное диалоговое окно (рис. 8.38). Оно нам немножко
Глава 31 Редактор настроек GNOME
Глава 31 Редактор настроек GNOME Я уже подробно рассказывал про настройку внешнего вида GNOME и некоторых других его параметров, теперь же я расскажу, как и где все эти настройки на самом деле хранятся.В GNOME существует централизованная система управления всеми параметрами
Окно настроек
Окно настроек Все фильтры, которые входят в состав пакета nik Color Efex Pro, имеют большое количество настроек. Это позволяет добиваться совершенно разных результатов при использовании одного и того же фильтра с разными значениями параметров. Еще одна особенность этих
Сохранение и восстановление настроек
Сохранение и восстановление настроек Изучив все описанное выше, вы теперь можете изменять интерфейс и параметры системы, удобно подстраивая их под свои потребности или специфические задачи. Однако очень часто возникают различные неприятные ситуации, связанные с
Избегайте настроек
Избегайте настроек Примите решение о деталяхВы сталкиваетесь с ограничением: сколько сообщений должно быть на странице? Ваша первая мысль сделать выбор 25, 50 или 100. Это легкий выход. Просто примите решение, как сделать лучше. И выберите одно число.Настройки — уход от пути
26.2.2. Тестирование настроек Web-сервера
26.2.2. Тестирование настроек Web-сервера Протестируем Web-сервер. Откройте браузер и введите адрес: http://localhost Должна открыться страница, изображенная на рис. 26.4. Теперь протестируем поддержку PHP. Поместите файл test.php в каталог /var/www/. Это можно сделать с помощью команды: sudo nano
29.4.5. Вывод на печать текущих настроек Web–среды с помощью ссылки
29.4.5. Вывод на печать текущих настроек Web–среды с помощью ссылки При выполнении сценария cgi какое?то количество переменных среды становится незадействованным. Для просмотра значений большинства переменных используется команда env или set. Давайте создадим ссылку на основе
ГЛАВА 8 ABAP для разработки настроек
ГЛАВА 8 ABAP для разработки настроек Происхождение АВАР Язык программирования АВАР/4 появился в 80-е годы, и с тех пор он развивается и совершенствуется с каждым релизом SAP R/3. Все приложения R/3 разрабатывались на АВАР/4. Зародился этот язык как язык программирования, созданный
10.2.5. Сохранение настроек поиска
10.2.5. Сохранение настроек поиска Вы в основном ищете страницы только на русском? Вам надоело каждый раз увеличивать количество результатов, отображаемых на одной странице? Тогда зайдите в настройки поиска (рис. 10.5). Ссылка Настройки находится рядом с полем ввода ключевых
Как защитить браузер от нежелательных изменений настроек Олег Нечай
Как защитить браузер от нежелательных изменений настроек Олег Нечай Опубликовано 21 марта 2014 Лишиться привычных настроек браузера проще простого: для этого достаточно зайти на какой-нибудь непорядочный сайт или скачать бесплатное приложение,
1.10.5. Изменение настроек пользователя
1.10.5. Изменение настроек пользователя Стандартный пользователь имеет возможность, не будучи администратором компьютера, изменять свои личные настройки в окне Учетные записи (Accounts): осуществить смену пароля и картинки (смена картинки была рассмотрена в разд. 1.10.4), а также
4.5.3. Изменение настроек, заданных по умолчанию
4.5.3. Изменение настроек, заданных по умолчанию По умолчанию для отображения и скрытия рабочей области приложения Dashboard используется клавиша <F12>. Но умолчания можно изменить в окне мини-утилиты Expos? и Spaces на вкладке Expos? (рис. 4.64). Для открытия этого окна следует вызвать
Блокировка компьютера и его настроек
Блокировка компьютера и его настроек Пользование ребенка компьютером всегда означает проблемы для родителей. Как бы высоко компьютер ни стоял, рано или поздно юный исследователь дотянется до него и захочет нажать пару кнопок. Результатом этого может быть потеря данных