Uploaded by ganob gek

Metodika2

advertisement
Методика выполнения л/р №2
Если у вас возникли трудности при выполнении лабораторной работы №2
(разработка однооконного приложения), то выполнение следующих шагов
позволит вам максимально приблизиться к написанию программы и
значительно уменьшить время ее доработки на занятии.
1. Создайте проект и расположите виджеты на окне. Настройте
отображение и проверьте через просмотр, что при сжатии/растяжении
окна виджеты меняют свои размеры соответственно.
2. Задайте всем виджетам (кроме меток) имена и запишите себе их —
они понадобятся вам при написании программы. Имена должны быть
смысловыми, чтобы виджеты можно было легко опознать, например,
btnSave – кнопка «Сохранить», lstBooks – список книг и т.п.
3. В заголовочный файл после команд #include но до начала
описания класса главного окна введите описание класса для хранения
данных об одной записи.
4. Добавьте в описание класса главного окна переменные, необходимые
для хранения в памяти данных во время работы программы. Обычно к это
два объекта класса записи для хранения двух записей.
5. Найдите в cpp файле метод-конструктор (его имя совпадает с
именем класса главного окна), часть его уже сгенерирована за вас. После
вызова функции setupUi вам необходимо вписать код для выполнения
следующих действий:
1) инициализация переменных-свойств класса (например заполнить
поля записей начальными значениями по умолчанию, особенно
перечни, т.к. они не могут иметь «пустых» значений);
2) установка начальное состояние виджетов окна: активность,
видимость, содержимое перечней (если они содержаться в ComboBox
или ListWidget), валидаторы для строк редактирования и т.д.
6. Составьте список действий пользователя (и, при необходимости,
других событий), на которые требуется реакция — например «нажатие
кнопки сохранения записи» или «смена номера текущей записи в
SpinBox».
7. Составьте словесный алгоритм действий по этим событиям (пример
алгоритма см. в разделе «Пример разработки слота»).
8. В справке по Qt найдите классы виджетов, события от которых вы
собираетесь обрабатывать, и на каждое действие пользователя выпишите
сигнал, который оповещает о том, что произошло данное событие.
9. Впишите в описание класса заголовки функций-слотов для событий,
на которые требуется реакция (в разделе private slots:); а также
заголовки служебных функций для выполнения повторяющихся действий
(например отображения содержимого записи в виджетах). Слоты должны
иметь тип возвращаемого значения void; параметры (если они
используются) должны совпадать с параметрами соответствующих им
сигналов.
10.В cpp файле опишите код объявленных вами методов. Переменные,
объявленные вами в классе, доступны для них. Для выполнения какихлибо действий с виджетами у вас есть объект ui, содержащий указатели
на все виджеты; имена указателей совпадают с именами, которые вы дали
виджетам. Для ознакомления с функциями работы с виджетами
используйте Qt Assistant, а также таблицу, в которой приведены наиболее
важные сигналы, функции и свойства виджетов. Если вы не можете
выполнить какое-либо действие с виджетом, запишите его в программе
комментарием, чтобы было легче разобрать его на занятии.
11. В методе-конструкторе класса главного окна соедините сигналы с
соответствующими слотами, используя функцию connect. Следите за
правильностью написания вызовов этой функции — отклонение от
шаблона приведет к тому, что соединение не будет работать.
12.При наличии ограничений на значения полей типа «строка» создайте
классы валидаторов в соответствии с инструкцией по разработке
валидаторов.
Download