Прикладное программирование
Практика 15
Библиотека Qt: Применение конфигурационных файлов.
Для каждой программы, состоящей из нескольких файлов,
создавайте отдельную папку проекта, например project15-1,
project15-2 и т.д., где "15" - номер практического
занятия, 1, 2 и т.д. - номер задания.
Каждую программу, состоящую из одного файла, сохранять
в отдельном файле для каждого упражнения,
например prog15-1, prog15-2 и т.д., где "15" - номер практического
занятия, 1, 2 и т.д. - номер задания.
1. По примеру 17 из лекции создайте приложение проекта config03.
В файле config.ini содержатся сведения о конфигурации приложения
в формате ключ=значение, например heightwindow=500. В программе
с помощью ассоциативного массива (контейнера, структуры (ключ, значение))
класса QMap выполняется парсинг этого файла и конфигурирование
в соответствии с ним приложения.
2. Проект BitMap v0.1. В окне нарисован горизонтальный ряд
из 8 квадратных ячеек, каждой ячейке в байте сопоставлен 1 бит.
Если ячейка белого цвета, то соответствующий бит равен 1,
если черного - то бит равен 0.
Числовой код хранится в файле config.ini.
При нажатии кнопки Reload измененный код загружается из
конфигурационного файла и содержимое окна перерисовывается.
Значение бита выводится над каждой ячейкой. Двоичное число
в байте переводится в шестнадцатеричное и десятичное и выводится
напротив двоичного.
3. Выполните рефакторинг (реинжиниринг) приложения проекта config03,
создав библиотеку MainWindow.
4. Приведите отношения между идентификаторами filePath, mapConfig
и классом MainWindow в соответствие с принципом инкапсуляции, добавьте
методы setFilePath и getFilePath.
5. Создайте приложение, в котором изображение из файла в формате
JPEG выводится в центре рамки с тенью, а под ней в прямоугольник
с тенью выводится выровненная по центру подпись с именем файла.
Источники
Основные
- Юркин А. Г.
Задачник по программированию. — СПб.: Питер, 2002. — 192 с.
- Поляков К. Ю., Шестаков А. П., Еремин Е. А. Объектноориентированное
программирование // Информатика. — 2011. — N13. — С. 22-45.